Event objects are represented by base64-encoded strings in
the event file and can't be loaded by existing eventreplay code.
Fixed the code of loading events from file by decoding base64 strings
into the binary form and loading them with pickle.load.
[YOCTO #9585]
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
from __future__ import print_function
import os
import sys, logging
+import codecs
# mangle syspath to allow easy import of modules
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
try:
event_data = json.loads(line.strip())
event_class = _import_class(event_data['class'])
- event_object = pickle.loads(json.loads(event_data['vars']))
+ event_str = event_data['vars'].encode('utf-8')
+ event_object = pickle.loads(codecs.decode(event_str, 'base64'))
except ValueError as e:
print("Failed loading ", line)
raise e