summaryrefslogtreecommitdiffstats
path: root/scripts/lib/resulttool/resultutils.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/resulttool/resultutils.py')
-rw-r--r--scripts/lib/resulttool/resultutils.py29
1 files changed, 18 insertions, 11 deletions
diff --git a/scripts/lib/resulttool/resultutils.py b/scripts/lib/resulttool/resultutils.py
index 177fb25f93..8917022d36 100644
--- a/scripts/lib/resulttool/resultutils.py
+++ b/scripts/lib/resulttool/resultutils.py
@@ -126,26 +126,33 @@ def decode_log(logdata):
if "compressed" in logdata:
data = logdata.get("compressed")
data = base64.b64decode(data.encode("utf-8"))
- return zlib.decompress(data).decode("utf-8")
+ data = zlib.decompress(data)
+ return data.decode("utf-8", errors='ignore')
return None
-def ptestresult_get_log(results, section):
- if 'ptestresult.sections' not in results:
+def generic_get_log(sectionname, results, section):
+ if sectionname not in results:
return None
- if section not in results['ptestresult.sections']:
+ if section not in results[sectionname]:
return None
- ptest = results['ptestresult.sections'][section]
+ ptest = results[sectionname][section]
if 'log' not in ptest:
return None
return decode_log(ptest['log'])
-def ptestresult_get_rawlogs(results):
- if 'ptestresult.rawlogs' not in results:
+def ptestresult_get_log(results, section):
+ return generic_get_log('ptestresuls.sections', results, section)
+
+def generic_get_rawlogs(sectname, results):
+ if sectname not in results:
return None
- if 'log' not in results['ptestresult.rawlogs']:
+ if 'log' not in results[sectname]:
return None
- return decode_log(results['ptestresult.rawlogs']['log'])
+ return decode_log(results[sectname]['log'])
+
+def ptestresult_get_rawlogs(results):
+ return generic_get_rawlogs('ptestresult.rawlogs', results)
def save_resultsdata(results, destdir, fn="testresults.json", ptestjson=False, ptestlogs=False):
for res in results:
@@ -173,7 +180,7 @@ def save_resultsdata(results, destdir, fn="testresults.json", ptestjson=False, p
with open(dst.replace(fn, "ptest-%s.log" % i), "w+") as f:
f.write(sectionlog)
-def git_get_result(repo, tags):
+def git_get_result(repo, tags, configmap=store_map):
git_objs = []
for tag in tags:
files = repo.run_cmd(['ls-tree', "--name-only", "-r", tag]).splitlines()
@@ -196,7 +203,7 @@ def git_get_result(repo, tags):
# Optimize by reading all data with one git command
results = {}
for obj in parse_json_stream(repo.run_cmd(['show'] + git_objs + ['--'])):
- append_resultsdata(results, obj)
+ append_resultsdata(results, obj, configmap=configmap)
return results