public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/maskray/unnest] benchtests: Enable scripts/plot_strings.py to read stdin
@ 2021-09-23  0:44 Fangrui Song
  0 siblings, 0 replies; only message in thread
From: Fangrui Song @ 2021-09-23  0:44 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3886eaff9d5a807732284a562f2d051e5d54fefa

commit 3886eaff9d5a807732284a562f2d051e5d54fefa
Author: Naohiro Tamura <naohirot@fujitsu.com>
Date:   Mon Sep 13 09:04:21 2021 +0530

    benchtests: Enable scripts/plot_strings.py to read stdin
    
    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
    
    Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>

Diff:
---
 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 c71f0804e4..ec634692d9 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,


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-23  0:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-23  0:44 [glibc/maskray/unnest] benchtests: Enable scripts/plot_strings.py to read stdin Fangrui Song

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).