diff options
author | Thomas Wood <thomas.wood@intel.com> | 2014-09-24 12:23:24 +0100 |
---|---|---|
committer | Thomas Wood <thomas.wood@intel.com> | 2014-10-01 16:28:27 +0100 |
commit | 73595a9c580026e7f33853c34b8fe98884990597 (patch) | |
tree | 68256ce1beafc1d5adcde364b5234a2e6fa2d22b | |
parent | 1a36e7fd6f162f6056236d83474d099033d1b255 (diff) | |
download | piglit-73595a9c580026e7f33853c34b8fe98884990597.tar.gz |
summary: add a csv output option
v2: small style fix (Dylan Baker)
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
-rw-r--r-- | framework/programs/summary.py | 32 | ||||
-rwxr-xr-x | piglit | 4 |
2 files changed, 35 insertions, 1 deletions
diff --git a/framework/programs/summary.py b/framework/programs/summary.py index 81f6d3d86..98b5e66ca 100644 --- a/framework/programs/summary.py +++ b/framework/programs/summary.py @@ -22,6 +22,7 @@ import argparse import shutil import os.path as path +import sys import framework.summary as summary import framework.status as status @@ -31,7 +32,8 @@ import framework.junit __all__ = ['html', 'junit', - 'console'] + 'console', + 'csv'] def html(input_): @@ -244,3 +246,31 @@ def console(input_): # Generate the output output = summary.Summary(args.results) output.generate_text(args.diff, args.summary) + + +def csv(input_): + parser = argparse.ArgumentParser() + parser.add_argument("-o", "--output", + metavar="<Output File>", + action="store", + dest="output", + default="stdout", + help="Output filename") + parser.add_argument("testResults", + metavar="<Input Files>", + help="JSON results file to be converted") + args = parser.parse_args(input_) + + testrun = framework.results.load_results(args.testResults) + + def write_results(output): + for name, result in testrun.tests.iteritems(): + output.write("{},{},{},{}\n".format(name, result['time'], + result['returncode'], + result['result'])) + + if args.output != "stdout": + with open(args.output, 'w') as output: + write_results(output) + else: + write_results(sys.stdout) @@ -135,6 +135,10 @@ def main(): add_help=False, help='generate junit xml from results') junit.set_defaults(func=summary.junit) + csv = summary_parser.add_parser('csv', + add_help=False, + help='generate csv from results') + csv.set_defaults(func=summary.csv) # Parse the known arguments (piglit run or piglit summary html for # example), and then pass the arguments that this parser doesn't know about |