[OE-core] [PATCH 2/2] resulttool: Add log subcommand

akuster808 akuster808 at gmail.com
Fri Apr 19 05:05:23 UTC 2019



On 4/18/19 7:57 PM, Joshua Watt wrote:
> Adds a subcommand for dumping various logs from test results
>
> Signed-off-by: Joshua Watt <JPEWhacker at gmail.com>
> ---
>  scripts/lib/resulttool/log.py        | 56 ++++++++++++++++++++++++++++
>  scripts/lib/resulttool/regression.py |  2 +-
>  scripts/resulttool                   |  2 +
>  3 files changed, 59 insertions(+), 1 deletion(-)
>  create mode 100644 scripts/lib/resulttool/log.py
>
> diff --git a/scripts/lib/resulttool/log.py b/scripts/lib/resulttool/log.py
> new file mode 100644
> index 00000000000..5584f2d0a99
> --- /dev/null
> +++ b/scripts/lib/resulttool/log.py
> @@ -0,0 +1,56 @@
> +# resulttool - Show logs
> +#
> +# Copyright (c) 2019 Garmin International
> +#
> +# This program is free software; you can redistribute it and/or modify it
> +# under the terms and conditions of the GNU General Public License,
> +# version 2, as published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope it will be useful, but WITHOUT
> +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
> +# more details.
> +#
> +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
> +
> +    print("ptest '%s' not found" % ptest)
> +    return 1
> +
> +def log(args, logger):
> +    results = resultutils.load_resultsdata(args.source)
> +    for path in results:
> +        for res in results[path]:
> +            if 'result' not in results[path][res]:
> +                continue
> +            r = results[path][res]['result']
> +
> +            if args.raw:
> +                if 'ptestresult.rawlogs' in r:
> +                    print(r['ptestresult.rawlogs']['log'])
> +                else:
> +                    print('Raw logs not found')
> +                    return 1
> +
> +            for ptest in args.ptest:
> +                if not show_ptest(r, ptest, logger):
> +                    return 1
> +
> +def register_commands(subparsers):
> +    """Register subcommands from this plugin"""
> +    parser = subparsers.add_parser('log', help='show logs',
> +                                         description='show the logs from test results',
> +                                         group='analysis')
> +    parser.set_defaults(func=log)
> +    parser.add_argument('source',
> +            help='the results file/directory/URL to import')
> +    parser.add_argument('--ptest', action='append', default=[],
> +            help='show logs for a ptest')
> +    parser.add_argument('--raw', action='store_true',
> +            help='show raw logs')
> +
> diff --git a/scripts/lib/resulttool/regression.py b/scripts/lib/resulttool/regression.py
> index aecb9da9ce5..fa90ab1e522 100644
> --- a/scripts/lib/resulttool/regression.py
> +++ b/scripts/lib/resulttool/regression.py
> @@ -64,7 +64,7 @@ def regression_common(args, logger, base_results, target_results):
>          if a in target_results:
>              base = list(base_results[a].keys())
>              target = list(target_results[a].keys())
> -            # We may have multiple base/targets which are for different configurations. Start by 
> +            # We may have multiple base/targets which are for different configurations. Start by
This change looks the same to me so what am I missing?

- Armin
>              # removing any pairs which match
>              for c in base.copy():
>                  for b in target.copy():
> diff --git a/scripts/resulttool b/scripts/resulttool
> index 18ac1019236..9477667a870 100755
> --- a/scripts/resulttool
> +++ b/scripts/resulttool
> @@ -49,6 +49,7 @@ import resulttool.store
>  import resulttool.regression
>  import resulttool.report
>  import resulttool.manualexecution
> +import resulttool.log
>  logger = scriptutils.logger_create('resulttool')
>  
>  def main():
> @@ -66,6 +67,7 @@ def main():
>      subparsers.add_subparser_group('analysis', 'analysis', 100)
>      resulttool.regression.register_commands(subparsers)
>      resulttool.report.register_commands(subparsers)
> +    resulttool.log.register_commands(subparsers)
>  
>      args = parser.parse_args()
>      if args.debug:




More information about the Openembedded-core mailing list