summaryrefslogtreecommitdiff
path: root/benchtests/scripts/validate_benchout.py
diff options
context:
space:
mode:
authorNaohiro Tamura <naohirot@fujitsu.com>2021-09-16 09:19:55 +0530
committerSiddhesh Poyarekar <siddhesh@sourceware.org>2021-09-16 09:19:55 +0530
commitcb5088cfd3030cfe7ea875846d9a8623dcddbf4f (patch)
treef7ae468e878b53f2f6b08cf133c19ca9172e484b /benchtests/scripts/validate_benchout.py
parentc484da9087632f2f1b4ab5a6cae4efcd09436d1d (diff)
downloadglibc-cb5088cfd3030cfe7ea875846d9a8623dcddbf4f.tar.gz
benchtests: Fix validate_benchout.py exceptions
This patch fixed validate_benchout.py two exceptions, 1) AttributeError if benchout_strings.schema.json is specified, and 2) json.decoder.JSONDecodeError if benchout file is not JSON. $ ~/glibc/benchtests/scripts/validate_benchout.py bench-memset.out \ ~/glibc/benchtests/scripts/benchout_strings.schema.json Traceback (most recent call last): File "/home/naohirot/glibc/benchtests/scripts/validate_benchout.py", line 86, in <module> sys.exit(main(sys.argv[1:])) File "/home/naohirot/glibc/benchtests/scripts/validate_benchout.py", line 69, in main bench.parse_bench(args[0], args[1]) File "/home/naohirot/glibc/benchtests/scripts/import_bench.py", line 139, in parse_bench do_for_all_timings(bench, lambda b, f, v: File "/home/naohirot/glibc/benchtests/scripts/import_bench.py", line 107, in do_for_all_timings if 'timings' not in bench['functions'][func][k].keys(): AttributeError: 'str' object has no attribute 'keys' $ ~/glibc/benchtests/scripts/validate_benchout.py bench-math-inlines.out \ ~/glibc/benchtests/scripts/benchout_strings.schema.json Traceback (most recent call last): File "/home/naohirot/glibc/benchtests/scripts/validate_benchout.py", line 86, in <module> sys.exit(main(sys.argv[1:])) File "/home/naohirot/glibc/benchtests/scripts/validate_benchout.py", line 69, in main bench.parse_bench(args[0], args[1]) File "/home/naohirot/glibc/benchtests/scripts/import_bench.py", line 137, in parse_bench bench = json.load(benchfile) File "/usr/lib/python3.6/json/__init__.py", line 299, in load parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) File "/usr/lib/python3.6/json/__init__.py", line 354, in loads return _default_decoder.decode(s) File "/usr/lib/python3.6/json/decoder.py", line 342, in decode raise JSONDecodeError("Extra data", s, end) json.decoder.JSONDecodeError: Extra data: line 1 column 17 (char 16) Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Diffstat (limited to 'benchtests/scripts/validate_benchout.py')
-rwxr-xr-xbenchtests/scripts/validate_benchout.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/benchtests/scripts/validate_benchout.py b/benchtests/scripts/validate_benchout.py
index 47df33ed02..00d5fa0ee5 100755
--- a/benchtests/scripts/validate_benchout.py
+++ b/benchtests/scripts/validate_benchout.py
@@ -73,11 +73,15 @@ def main(args):
except bench.validator.ValidationError as e:
return print_and_exit("Invalid benchmark output: %s" % e.message,
- os.EX_DATAERR)
+ os.EX_DATAERR)
except bench.validator.SchemaError as e:
return print_and_exit("Invalid schema: %s" % e.message, os.EX_DATAERR)
+ except json.decoder.JSONDecodeError as e:
+ return print_and_exit("Benchmark output in %s is not JSON." % args[0],
+ os.EX_DATAERR)
+
print("Benchmark output in %s is valid." % args[0])
return os.EX_OK