Message ID | 20220324183018.2476551-15-jsnow@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iotests: add enhanced debugging info to qemu-io failures | expand |
On Thu, Mar 24, 2022 at 02:30:15PM -0400, John Snow wrote: > This test expects failure ... but only sometimes. When? Why? > > It's for reads of a region not defined by a bitmap. Adjust the test to > be more explicit about what it expects to fail and why. > > Signed-off-by: John Snow <jsnow@redhat.com> > --- > tests/qemu-iotests/tests/image-fleecing | 28 +++++++++++++++++-------- > 1 file changed, 19 insertions(+), 9 deletions(-) Reviewed-by: Eric Blake <eblake@redhat.com>
On 24.03.22 19:30, John Snow wrote: > This test expects failure ... but only sometimes. When? Why? > > It's for reads of a region not defined by a bitmap. Ah, yes, right. The bitmaps defines what regions are to be backed up, so other regions are not covered by the fleecing scheme, and might be invalid if read. Hence the errors. > Adjust the test to > be more explicit about what it expects to fail and why. > > Signed-off-by: John Snow <jsnow@redhat.com> > --- > tests/qemu-iotests/tests/image-fleecing | 28 +++++++++++++++++-------- > 1 file changed, 19 insertions(+), 9 deletions(-) Reviewed-by: Hanna Reitz <hreitz@redhat.com>
diff --git a/tests/qemu-iotests/tests/image-fleecing b/tests/qemu-iotests/tests/image-fleecing index b7e5076104..ac749702f8 100755 --- a/tests/qemu-iotests/tests/image-fleecing +++ b/tests/qemu-iotests/tests/image-fleecing @@ -22,9 +22,10 @@ # # Creator/Owner: John Snow <jsnow@redhat.com> +from subprocess import CalledProcessError + import iotests -from iotests import log, qemu_img, qemu_io, qemu_io_silent, \ - qemu_io_pipe_and_status +from iotests import log, qemu_img, qemu_io, qemu_io_silent iotests.script_initialize( supported_fmts=['qcow2'], @@ -185,10 +186,14 @@ def do_test(vm, use_cbw, use_snapshot_access_filter, base_img_path, for p in patterns + zeroes: cmd = 'read -P%s %s %s' % p log(cmd) - out, ret = qemu_io_pipe_and_status('-r', '-f', 'raw', '-c', cmd, - nbd_uri) - if ret != 0: - print(out) + + try: + qemu_io('-r', '-f', 'raw', '-c', cmd, nbd_uri) + except CalledProcessError as exc: + if bitmap and p in zeroes: + log(exc.stdout) + else: + raise log('') log('--- Testing COW ---') @@ -228,9 +233,14 @@ def do_test(vm, use_cbw, use_snapshot_access_filter, base_img_path, args += [target_img_path] else: args += ['-f', 'raw', nbd_uri] - out, ret = qemu_io_pipe_and_status(*args) - if ret != 0: - print(out) + + try: + qemu_io(*args) + except CalledProcessError as exc: + if bitmap and p in zeroes: + log(exc.stdout) + else: + raise log('') log('--- Cleanup ---')
This test expects failure ... but only sometimes. When? Why? It's for reads of a region not defined by a bitmap. Adjust the test to be more explicit about what it expects to fail and why. Signed-off-by: John Snow <jsnow@redhat.com> --- tests/qemu-iotests/tests/image-fleecing | 28 +++++++++++++++++-------- 1 file changed, 19 insertions(+), 9 deletions(-)