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:
committed by
Richard Purdie
parent
0c19c09335
commit
e08f657220
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user