[Piglit] [PATCH 1/2] framework: Add new formatted summary.
Dylan Baker
dylan at pnwbakers.com
Sat Sep 30 03:25:37 UTC 2017
Quoting Rafael Antognolli (2017-09-29 12:00:04)
> Similarly to print-cmd, this option allows one to specify a format
> string to output each test in the summary. It can be used to easily
> generate a list of only tests that failed, with something like:
>
> ./piglit summary formatted -e pass -e skip -e notrun --format {name} \
> results.json.bz2 > ../piglit-summary.txt
>
> This file can then be used as input to piglit run --test-list.
>
> Signed-off-by: Rafael Antognolli <rafael.antognolli at intel.com>
> ---
> framework/programs/summary.py | 56 +++++++++++++++++++++++++++++++++++++++++++
> piglit | 4 ++++
> 2 files changed, 60 insertions(+)
>
> diff --git a/framework/programs/summary.py b/framework/programs/summary.py
> index e400d9a76..e21fa5fda 100644
> --- a/framework/programs/summary.py
> +++ b/framework/programs/summary.py
> @@ -40,6 +40,7 @@ __all__ = [
> 'csv',
> 'html',
> 'feature'
> + 'formatted'
> ]
>
>
> @@ -200,6 +201,61 @@ def csv(input_):
> else:
> write_results(sys.stdout)
>
> + at exceptions.handler
> +def formatted(input_):
> + # Make a copy of the status text list and add all. This is used as the
> + # argument list for -e/--exclude
> + statuses = set(str(s) for s in status.ALL)
> +
> + unparsed = parsers.parse_config(input_)[1]
> +
> + # Adding the parent is necissary to get the help options
I know this is copy and pasted from me, but typo necissary -> necessary
> + parser = argparse.ArgumentParser(parents=[parsers.CONFIG])
> + parser.add_argument("--format",
> + dest="format_string",
> + metavar="<format string>",
> + default="{name} ::: {time} ::: "
> + "{returncode} ::: {result}",
> + action="store",
> + help="A template string that defines the format. "
> + "Replacement tokens are {name}, {time}, "
> + "{returncode} and {result}")
> + parser.add_argument("-e", "--exclude-details",
> + default=[],
> + action="append",
> + choices=statuses,
> + help="Optionally exclude the listing of tests with "
> + "the status(es) given as arguments. "
> + "May be used multiple times")
> + parser.add_argument("-o", "--output",
> + metavar="<Output File>",
> + action="store",
> + dest="output",
> + default="stdout",
> + help="Output filename")
> + parser.add_argument("testResults",
again, I know this is copy and pasted, but can we make this test_results in
keeping with piglit's style?
> + metavar="<Input Files>",
> + help="JSON results file to be converted")
> + args = parser.parse_args(unparsed)
> +
> + testrun = backends.load(args.testResults)
> +
> + def write_results(output):
> + for name, result in six.iteritems(testrun.tests):
> + if result.result in args.exclude_details:
> + continue
> + output.write((args.format_string + "\n").format(
> + name=name,
> + time=result.time.total,
> + returncode=result.returncode,
> + result=result.result))
> +
> + if args.output != "stdout":
> + with open(args.output, 'w') as output:
> + write_results(output)
> + else:
> + write_results(sys.stdout)
> +
>
> @exceptions.handler
> def aggregate(input_):
> diff --git a/piglit b/piglit
> index 6c1d30ae8..0bc753402 100755
> --- a/piglit
> +++ b/piglit
> @@ -149,6 +149,10 @@ def main():
> add_help=False,
> help='generate csv from results')
> csv.set_defaults(func=summary.csv)
> + formatted = summary_parser.add_parser('formatted',
> + add_help=False,
> + help='generate formatted output from results')
> + formatted.set_defaults(func=summary.formatted)
> aggregate = summary_parser.add_parser('aggregate',
> add_help=False,
> help="Aggregate incomplete piglit run.")
> --
> 2.13.5
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit
Other than that this looks good, with those fixed:
Reviewed-by: Dylan Baker <dylan at pnwbakers.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20170929/c5041c19/attachment-0001.sig>
More information about the Piglit
mailing list