[PATCH v3 1/5] benchtests: Enable scripts/plot_strings.py to read stdin
Naohiro Tamura
naohirot@fujitsu.com
Thu Aug 5 07:49:53 GMT 2021
This patch enables scripts/plot_strings.py to read a benchmark result
file from stdin.
To keep backward compatibility, that is to keep accepting multiple of
benchmark result files in argument, blank argument doesn't mean stdin,
but '-' does.
Therefore nargs parameter of ArgumentParser.add_argument() method is
not changed to '?', but keep '+'.
ex:
$ jq '.' bench-memset.out | plot_strings.py -
$ jq '.' bench-memset.out | plot_strings.py - bench-memset-large.out
$ plot_strings.py bench-memset.out bench-memset-large.out
error ex:
$ jq '.' bench-memset.out | plot_strings.py
---
benchtests/scripts/plot_strings.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/benchtests/scripts/plot_strings.py b/benchtests/scripts/plot_strings.py
index c71f0804e4de..ec634692d9ad 100755
--- a/benchtests/scripts/plot_strings.py
+++ b/benchtests/scripts/plot_strings.py
@@ -31,6 +31,7 @@ import json
import matplotlib as mpl
import numpy as np
import os
+import sys
try:
import jsonschema as validator
@@ -331,8 +332,11 @@ def main(args):
for filename in args.bench:
bench = None
- with open(filename, "r") as f:
- bench = json.load(f)
+ if filename == '-':
+ bench = json.load(sys.stdin)
+ else:
+ with open(filename, "r") as f:
+ bench = json.load(f)
validator.validate(bench, schema)
@@ -354,7 +358,8 @@ if __name__ == "__main__":
# Required parameter
parser.add_argument("bench", nargs="+",
- help="benchmark results file(s) in json format")
+ help="benchmark results file(s) in json format, " \
+ "and/or '-' as a benchmark result file from stdin")
# Optional parameters
parser.add_argument("-b", "--baseline", type=str,
--
2.17.1
More information about the Libc-alpha
mailing list