1
0
mirror of https://git.yoctoproject.org/poky synced 2026-07-27 07:27:12 +00:00

oeqa/core/case.py: Add OEPTestResultTestCase for ptestresult helpers

Add the OEPTestResultTestCase class as a mix-in class to provide helper
functions for interacting with ptestresults within the extraresults
object generated by the test case.

This class also provides default compression of log text and log files.

Also add support to resulttool for decoding/decompressing log files
embedded in the test results.

(From OE-Core rev: 06cba9883a5964320969301fd05eeb6bec3e786d)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Nathan Rossi
2019-09-11 14:13:07 +00:00
committed by Richard Purdie
parent 0c19c09335
commit e08f657220
3 changed files with 108 additions and 27 deletions
+20 -21
View File
@@ -8,12 +8,12 @@ import os
import resulttool.resultutils as resultutils
def show_ptest(result, ptest, logger):
if 'ptestresult.sections' in result:
if ptest in result['ptestresult.sections'] and 'log' in result['ptestresult.sections'][ptest]:
print(result['ptestresult.sections'][ptest]['log'])
return 0
logdata = resultutils.ptestresult_get_log(result, ptest)
if logdata is not None:
print(logdata)
return 0
print("ptest '%s' not found" % ptest)
print("ptest '%s' log not found" % ptest)
return 1
def show_reproducible(result, reproducible, logger):
@@ -25,7 +25,6 @@ def show_reproducible(result, reproducible, logger):
print("reproducible '%s' not found" % reproducible)
return 1
def log(args, logger):
results = resultutils.load_resultsdata(args.source)
@@ -35,24 +34,24 @@ def log(args, logger):
return 1
for _, run_name, _, r in resultutils.test_run_results(results):
if args.dump_ptest:
if 'ptestresult.sections' in r:
for name, ptest in r['ptestresult.sections'].items():
if 'log' in ptest:
dest_dir = args.dump_ptest
if args.prepend_run:
dest_dir = os.path.join(dest_dir, run_name)
if args.dump_ptest and 'ptestresult.sections' in r:
for name, ptest in r['ptestresult.sections'].items():
logdata = resultutils.ptestresult_get_log(r, name)
if logdata is not None:
dest_dir = args.dump_ptest
if args.prepend_run:
dest_dir = os.path.join(dest_dir, run_name)
os.makedirs(dest_dir, exist_ok=True)
dest = os.path.join(dest_dir, '%s.log' % name)
print(dest)
with open(dest, 'w') as f:
f.write(ptest['log'])
os.makedirs(dest_dir, exist_ok=True)
dest = os.path.join(dest_dir, '%s.log' % name)
print(dest)
with open(dest, 'w') as f:
f.write(logdata)
if args.raw_ptest:
if 'ptestresult.rawlogs' in r:
print(r['ptestresult.rawlogs']['log'])
rawlog = resultutils.ptestresult_get_rawlogs(r)
if rawlog is not None:
print(rawlog)
else:
print('Raw ptest logs not found')
return 1