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

Joshua Watt jpewhacker at gmail.com
Fri Apr 19 13:14:58 UTC 2019


On Fri, Apr 19, 2019, 12:05 AM akuster808 <akuster808 at gmail.com> wrote:

>
>
> 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?
>

It stripped off trailing whitespace and I missed removing it when staging.

- 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:
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20190419/36c78ccc/attachment.html>


More information about the Openembedded-core mailing list