diff options
author | Joshua Watt <jpewhacker@gmail.com> | 2019-09-05 08:54:44 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-09-06 14:56:05 +0100 |
commit | 7a4ebb361ff1efc22e7dafadfa60c98bc8a79ed4 (patch) | |
tree | 2f3de97141cbc2783b22ca3c2b3bee903deb224b /scripts/lib | |
parent | 94cd73f7295dda8a0828bcd7159bbe54263c55ae (diff) | |
download | openembedded-core-contrib-7a4ebb361ff1efc22e7dafadfa60c98bc8a79ed4.tar.gz |
resulttool: Add reproducible log extraction
Adds an argument to the log subcommand to extract the raw logs from the
reproducible selftest.
To prevent ambiguity, the "--raw" argument has been renamed
"--raw-ptest", although the old "--raw" argument is kept around for
compatibility.
[YOCTO #13324]
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'scripts/lib')
-rw-r--r-- | scripts/lib/resulttool/log.py | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/scripts/lib/resulttool/log.py b/scripts/lib/resulttool/log.py index 25c3396717..2352c767d9 100644 --- a/scripts/lib/resulttool/log.py +++ b/scripts/lib/resulttool/log.py @@ -16,6 +16,16 @@ def show_ptest(result, ptest, logger): print("ptest '%s' not found" % ptest) return 1 +def show_reproducible(result, reproducible, logger): + try: + print(result['reproducible'][reproducible]['diffoscope.text']) + return 0 + + except KeyError: + print("reproducible '%s' not found" % reproducible) + return 1 + + def log(args, logger): results = resultutils.load_resultsdata(args.source) @@ -40,17 +50,28 @@ def log(args, logger): with open(dest, 'w') as f: f.write(ptest['log']) - if args.raw: + if args.raw_ptest: if 'ptestresult.rawlogs' in r: print(r['ptestresult.rawlogs']['log']) else: - print('Raw logs not found') + print('Raw ptest logs not found') + return 1 + + if args.raw_reproducible: + if 'reproducible.rawlogs' in r: + print(r['reproducible.rawlogs']['log']) + else: + print('Raw reproducible logs not found') return 1 for ptest in args.ptest: if not show_ptest(r, ptest, logger): return 1 + for reproducible in args.reproducible: + if not show_reproducible(r, reproducible, logger): + return 1 + def register_commands(subparsers): """Register subcommands from this plugin""" parser = subparsers.add_parser('log', help='show logs', @@ -63,9 +84,15 @@ def register_commands(subparsers): help='show logs for a ptest') parser.add_argument('--dump-ptest', metavar='DIR', help='Dump all ptest log files to the specified directory.') + parser.add_argument('--reproducible', action='append', default=[], + help='show logs for a reproducible test') parser.add_argument('--prepend-run', action='store_true', help='''Dump ptest results to a subdirectory named after the test run when using --dump-ptest. Required if more than one test run is present in the result file''') parser.add_argument('--raw', action='store_true', - help='show raw logs') + help='show raw (ptest) logs. Deprecated. Alias for "--raw-ptest"', dest='raw_ptest') + parser.add_argument('--raw-ptest', action='store_true', + help='show raw ptest log') + parser.add_argument('--raw-reproducible', action='store_true', + help='show raw reproducible build logs') |