qemu-iotests: Add VM.qmp_log()

This adds a helper function that logs both the QMP request and the
received response before returning it.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
Kevin Wolf 2018-05-23 18:17:45 +02:00
parent 5ad1dbf76a
commit e234398a8e

View File

@ -206,6 +206,10 @@ def filter_qmp_event(event):
event['timestamp']['microseconds'] = 'USECS'
return event
def filter_testfiles(msg):
prefix = os.path.join(test_dir, "%s-" % (os.getpid()))
return msg.replace(prefix, 'TEST_DIR/PID-')
def log(msg, filters=[]):
for flt in filters:
msg = flt(msg)
@ -389,6 +393,13 @@ class VM(qtest.QEMUQtestMachine):
result.append(filter_qmp_event(ev))
return result
def qmp_log(self, cmd, filters=[filter_testfiles], **kwargs):
logmsg = "{'execute': '%s', 'arguments': %s}" % (cmd, kwargs)
log(logmsg, filters)
result = self.qmp(cmd, **kwargs)
log(str(result), filters)
return result
index_re = re.compile(r'([^\[]+)\[([^\]]+)\]')