[libvirt PATCH 21/29] cpu-parse: Move json output to new script

Tim Wiederhake twiederh at redhat.com
Tue Dec 15 16:25:07 UTC 2020


Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
---
 tests/cputestdata/cpu-gather.py   | 30 ++++++++++++++++++++++++++++++
 tests/cputestdata/cpu-parse.sh    | 16 ----------------
 tests/cputestdata/cpu-reformat.py |  9 ---------
 3 files changed, 30 insertions(+), 25 deletions(-)
 delete mode 100755 tests/cputestdata/cpu-reformat.py

diff --git a/tests/cputestdata/cpu-gather.py b/tests/cputestdata/cpu-gather.py
index bc5c7dbb15..2c3f39ab35 100755
--- a/tests/cputestdata/cpu-gather.py
+++ b/tests/cputestdata/cpu-gather.py
@@ -244,13 +244,43 @@ def output_xml(data, filename):
         f.write("</cpudata>\n")
 
 
+def output_json(data, filename):
+    replies = list()
+    for reply in data["model"]:
+        if "QMP" in reply:
+            continue
+        if "timestamp" in reply:
+            continue
+        if "return" in reply and not reply["return"]:
+            continue
+        replies.append(reply)
+
+    if not replies:
+        return
+
+    if "model-expansion" not in [reply.get("id") for reply in replies]:
+        exit(
+            "Error: Missing query-cpu-model-expansion reply in "
+            "{}".format(filename))
+
+    print(filename)
+    with open(filename, "wt") as f:
+        for reply in replies:
+            if reply is not replies[0]:
+                f.write("\n")
+            json.dump(reply, f, indent=2)
+            f.write("\n")
+
+
 def parse(args):
     data = json.load(sys.stdin)
 
     filename = parse_filename(data)
     filename_xml = "{}.xml".format(filename)
+    filename_json = "{}.json".format(filename)
 
     output_xml(data, filename_xml)
+    output_json(data, filename_json)
 
     os.environ["CPU_GATHER_PY"] = "true"
     os.environ["model"] = data["name"]
diff --git a/tests/cputestdata/cpu-parse.sh b/tests/cputestdata/cpu-parse.sh
index 84d37d0df4..aeb6e4e07f 100755
--- a/tests/cputestdata/cpu-parse.sh
+++ b/tests/cputestdata/cpu-parse.sh
@@ -7,23 +7,7 @@ fi
 
 data=`cat`
 
-json()
-{
-    first=true
-    sed -ne '/{"QMP".*/d;
-             /{"return": {}}/d;
-             /{"timestamp":.*/d;
-             /^{/p' <<<"$data" | \
-    while read; do
-        $first || echo
-        first=false
-        $(dirname $0)/cpu-reformat.py <<<"$REPLY"
-    done
-}
-
-json <<<"$data" >$fname.json
 if [[ -s $fname.json ]]; then
-    echo $fname.json
     if ! grep -q model-expansion $fname.json; then
         echo "Missing query-cpu-model-expansion reply in $name.json" >&2
         exit 1
diff --git a/tests/cputestdata/cpu-reformat.py b/tests/cputestdata/cpu-reformat.py
deleted file mode 100755
index fcc6b8ab41..0000000000
--- a/tests/cputestdata/cpu-reformat.py
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env python3
-
-import sys
-import json
-
-dec = json.JSONDecoder()
-data, pos = dec.raw_decode(sys.stdin.read())
-json.dump(data, sys.stdout, indent=2, separators=(',', ': '))
-print("")
-- 
2.26.2




More information about the libvir-list mailing list