On 12/12/18 7:50 PM, John Snow wrote:
If iotests have lines exceeding >998 characters long, git doesn't
want to send it plaintext to the list. We can solve this by allowing
the iotests to use pretty printed QMP output that we can match against
instead.
As a bonus, it's much nicer for human eyes, too.
Signed-off-by: John Snow <js...@redhat.com>
---
tests/qemu-iotests/iotests.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 9595429fea..dbbef4bad3 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -447,12 +447,12 @@ class VM(qtest.QEMUQtestMachine):
result.append(filter_qmp_event(ev))
return result
- def qmp_log(self, cmd, filters=[filter_testfiles], **kwargs):
+ def qmp_log(self, cmd, indent=None, filters=[filter_testfiles], **kwargs):
Why None instead of False?
logmsg = '{"execute": "%s", "arguments": %s}' % \
(cmd, json.dumps(kwargs, sort_keys=True))
log(logmsg, filters)
result = self.qmp(cmd, **kwargs)
- log(json.dumps(result, sort_keys=True), filters)
+ log(json.dumps(result, indent=indent, sort_keys=True), filters)
But I'd actually have to read the contract to json.dumps() to learn what
is expected.
/me goes and does that...
https://docs.python.org/2/library/json.html
If indent is a non-negative integer, then JSON array elements and object
members will be pretty-printed with that indent level. An indent level
of 0, or negative, will only insert newlines. None (the default) selects
the most compact representation.
Okay, makes sense.
Reviewed-by: Eric Blake <ebl...@redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org