Message ID | 20181220022952.20493-9-jsnow@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | bitmaps: remove x- prefix from QMP api | expand |
On 12/19/18 8:29 PM, John Snow wrote: > Several places in iotests deal with serializing objects into JSON > strings, but to add pretty-printing it seems desireable to localize s/desireable/desirable/ > all of those cases. > > log() seems like a good candidate for that centralized behavior. > log() can already serialize json objects, but when it does so, > it assumes filters=[] operates on QMP objects, not strings. > > qmp_log currently operates by dumping outgoing and incoming QMP > objects into strings and filtering them assuming that filters=[] > are string filters. > > To have qmp_log use log's serialization, qmp_log will need to > accept only qmp filters, not text filters. > > However, only a single caller of qmp_log actually requires any > filters at all. I remove the default filter and add it explicitly > to the caller in preparation for refactoring qmp_log to use rich > filters instead. > > test 206 is amended to name the filter explicitly and the default > is removed. > > Signed-off-by: John Snow <jsnow@redhat.com> > --- > tests/qemu-iotests/206 | 8 ++++++-- > tests/qemu-iotests/iotests.py | 2 +- > 2 files changed, 7 insertions(+), 3 deletions(-) > Reviewed-by: Eric Blake <eblake@redhat.com>
20.12.2018 5:29, John Snow wrote: > Several places in iotests deal with serializing objects into JSON > strings, but to add pretty-printing it seems desireable to localize > all of those cases. > > log() seems like a good candidate for that centralized behavior. > log() can already serialize json objects, but when it does so, > it assumes filters=[] operates on QMP objects, not strings. > > qmp_log currently operates by dumping outgoing and incoming QMP > objects into strings and filtering them assuming that filters=[] > are string filters. > > To have qmp_log use log's serialization, qmp_log will need to > accept only qmp filters, not text filters. > > However, only a single caller of qmp_log actually requires any > filters at all. I remove the default filter and add it explicitly > to the caller in preparation for refactoring qmp_log to use rich > filters instead. > > test 206 is amended to name the filter explicitly and the default > is removed. > > Signed-off-by: John Snow<jsnow@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
diff --git a/tests/qemu-iotests/206 b/tests/qemu-iotests/206 index 128c334c7c..e92550fa59 100755 --- a/tests/qemu-iotests/206 +++ b/tests/qemu-iotests/206 @@ -26,7 +26,9 @@ from iotests import imgfmt iotests.verify_image_format(supported_fmts=['qcow2']) def blockdev_create(vm, options): - result = vm.qmp_log('blockdev-create', job_id='job0', options=options) + result = vm.qmp_log('blockdev-create', + filters=[iotests.filter_testfiles], + job_id='job0', options=options) if 'return' in result: assert result['return'] == {} @@ -52,7 +54,9 @@ with iotests.FilePath('t.qcow2') as disk_path, \ 'filename': disk_path, 'size': 0 }) - vm.qmp_log('blockdev-add', driver='file', filename=disk_path, + vm.qmp_log('blockdev-add', + filters=[iotests.filter_testfiles], + driver='file', filename=disk_path, node_name='imgfile') blockdev_create(vm, { 'driver': imgfmt, diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 565eebb1ab..57fe20db45 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -460,7 +460,7 @@ 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, filters=[], **kwargs): full_cmd = OrderedDict(( ("execute", cmd), ("arguments", ordered_kwargs(kwargs))
Several places in iotests deal with serializing objects into JSON strings, but to add pretty-printing it seems desireable to localize all of those cases. log() seems like a good candidate for that centralized behavior. log() can already serialize json objects, but when it does so, it assumes filters=[] operates on QMP objects, not strings. qmp_log currently operates by dumping outgoing and incoming QMP objects into strings and filtering them assuming that filters=[] are string filters. To have qmp_log use log's serialization, qmp_log will need to accept only qmp filters, not text filters. However, only a single caller of qmp_log actually requires any filters at all. I remove the default filter and add it explicitly to the caller in preparation for refactoring qmp_log to use rich filters instead. test 206 is amended to name the filter explicitly and the default is removed. Signed-off-by: John Snow <jsnow@redhat.com> --- tests/qemu-iotests/206 | 8 ++++++-- tests/qemu-iotests/iotests.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-)