Message ID | 20190927094242.11152-15-mreitz@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iotests: Allow ./check -o data_file | expand |
On Fri, 2019-09-27 at 11:42 +0200, Max Reitz wrote: > The only difference is that the json:{} filename of the image looks > different. We actually do not care about that filename in this test, we > are only interested in (1) that there is a json:{} filename, and (2) > whether the backing filename can be constructed. > > So just filter out the json:{} data, thus making this test pass both > with and without data_file. > > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > tests/qemu-iotests/110 | 7 +++++-- > tests/qemu-iotests/110.out | 4 ++-- > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/tests/qemu-iotests/110 b/tests/qemu-iotests/110 > index f78df0e6e1..34459dcd60 100755 > --- a/tests/qemu-iotests/110 > +++ b/tests/qemu-iotests/110 > @@ -67,6 +67,7 @@ echo > # Across blkdebug without a config file, you cannot reconstruct filenames, so > # qemu is incapable of knowing the directory of the top image from the filename > # alone. However, using bdrv_dirname(), it should still work. > +# (Filter out the json:{} filename so this test works with external data files) > TEST_IMG="json:{ > 'driver': '$IMGFMT', > 'file': { > @@ -82,7 +83,8 @@ TEST_IMG="json:{ > } > ] > } > -}" _img_info | _filter_img_info | grep -v 'backing file format' > +}" _img_info | _filter_img_info | grep -v 'backing file format' \ > + | sed -e 's#^image: json:.*#image: json:{ /* filtered */ }#' > > echo > echo '=== Backing name is always relative to the backed image ===' > @@ -114,7 +116,8 @@ TEST_IMG="json:{ > } > ] > } > -}" _img_info | _filter_img_info | grep -v 'backing file format' > +}" _img_info | _filter_img_info | grep -v 'backing file format' \ > + | sed -e 's#^image: json:.*#image: json:{ /* filtered */ }#' > > > # success, all done > diff --git a/tests/qemu-iotests/110.out b/tests/qemu-iotests/110.out > index f60b26390e..f835553a99 100644 > --- a/tests/qemu-iotests/110.out > +++ b/tests/qemu-iotests/110.out > @@ -11,7 +11,7 @@ backing file: t.IMGFMT.base (actual path: TEST_DIR/t.IMGFMT.base) > > === Non-reconstructable filename === > > -image: json:{"driver": "IMGFMT", "file": {"set-state.0.event": "read_aio", "image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "set-state.0.new_state": 42}} > +image: json:{ /* filtered */ } > file format: IMGFMT > virtual size: 64 MiB (67108864 bytes) > backing file: t.IMGFMT.base (actual path: TEST_DIR/t.IMGFMT.base) > @@ -22,7 +22,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=t.IMGFMT.b > > === Nodes without a common directory === > > -image: json:{"driver": "IMGFMT", "file": {"children": [{"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, {"driver": "file", "filename": "TEST_DIR/t.IMGFMT.copy"}], "driver": "quorum", "vote- > threshold": 1}} > +image: json:{ /* filtered */ } > file format: IMGFMT > virtual size: 64 MiB (67108864 bytes) > backing file: t.IMGFMT.base (cannot determine actual path) Again, maybe put that into the common.filter, so new tests won't need to copy&paste this? Also maybe remove the image name completely from output, thus not needing the more complex regex? Best regards, Maxim Levitsky
On 29.09.19 18:34, Maxim Levitsky wrote: > On Fri, 2019-09-27 at 11:42 +0200, Max Reitz wrote: >> The only difference is that the json:{} filename of the image looks >> different. We actually do not care about that filename in this test, we >> are only interested in (1) that there is a json:{} filename, and (2) >> whether the backing filename can be constructed. >> >> So just filter out the json:{} data, thus making this test pass both >> with and without data_file. >> >> Signed-off-by: Max Reitz <mreitz@redhat.com> >> --- >> tests/qemu-iotests/110 | 7 +++++-- >> tests/qemu-iotests/110.out | 4 ++-- >> 2 files changed, 7 insertions(+), 4 deletions(-) >> >> diff --git a/tests/qemu-iotests/110 b/tests/qemu-iotests/110 >> index f78df0e6e1..34459dcd60 100755 >> --- a/tests/qemu-iotests/110 >> +++ b/tests/qemu-iotests/110 >> @@ -67,6 +67,7 @@ echo >> # Across blkdebug without a config file, you cannot reconstruct filenames, so >> # qemu is incapable of knowing the directory of the top image from the filename >> # alone. However, using bdrv_dirname(), it should still work. >> +# (Filter out the json:{} filename so this test works with external data files) >> TEST_IMG="json:{ >> 'driver': '$IMGFMT', >> 'file': { >> @@ -82,7 +83,8 @@ TEST_IMG="json:{ >> } >> ] >> } >> -}" _img_info | _filter_img_info | grep -v 'backing file format' >> +}" _img_info | _filter_img_info | grep -v 'backing file format' \ >> + | sed -e 's#^image: json:.*#image: json:{ /* filtered */ }#' >> >> echo >> echo '=== Backing name is always relative to the backed image ===' >> @@ -114,7 +116,8 @@ TEST_IMG="json:{ >> } >> ] >> } >> -}" _img_info | _filter_img_info | grep -v 'backing file format' >> +}" _img_info | _filter_img_info | grep -v 'backing file format' \ >> + | sed -e 's#^image: json:.*#image: json:{ /* filtered */ }#' >> >> >> # success, all done >> diff --git a/tests/qemu-iotests/110.out b/tests/qemu-iotests/110.out >> index f60b26390e..f835553a99 100644 >> --- a/tests/qemu-iotests/110.out >> +++ b/tests/qemu-iotests/110.out >> @@ -11,7 +11,7 @@ backing file: t.IMGFMT.base (actual path: TEST_DIR/t.IMGFMT.base) >> >> === Non-reconstructable filename === >> >> -image: json:{"driver": "IMGFMT", "file": {"set-state.0.event": "read_aio", "image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "set-state.0.new_state": 42}} >> +image: json:{ /* filtered */ } >> file format: IMGFMT >> virtual size: 64 MiB (67108864 bytes) >> backing file: t.IMGFMT.base (actual path: TEST_DIR/t.IMGFMT.base) >> @@ -22,7 +22,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=t.IMGFMT.b >> >> === Nodes without a common directory === >> >> -image: json:{"driver": "IMGFMT", "file": {"children": [{"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, {"driver": "file", "filename": "TEST_DIR/t.IMGFMT.copy"}], "driver": "quorum", "vote- >> threshold": 1}} >> +image: json:{ /* filtered */ } >> file format: IMGFMT >> virtual size: 64 MiB (67108864 bytes) >> backing file: t.IMGFMT.base (cannot determine actual path) > > Again, maybe put that into the common.filter, so new tests won't need to copy&paste this? Good idea. > Also maybe remove the image name completely from output, thus not needing the more complex regex? I’d prefer to still see that there is a json:{} filename instead of a plain one. (This is important in this test because for plain filenames, it’s generally easy to reconstruct the backing file path; it’s only difficult for json:{} filenames.) Max
On Mon, 2019-09-30 at 15:34 +0200, Max Reitz wrote: > On 29.09.19 18:34, Maxim Levitsky wrote: > > On Fri, 2019-09-27 at 11:42 +0200, Max Reitz wrote: > > > The only difference is that the json:{} filename of the image looks > > > different. We actually do not care about that filename in this test, we > > > are only interested in (1) that there is a json:{} filename, and (2) > > > whether the backing filename can be constructed. > > > > > > So just filter out the json:{} data, thus making this test pass both > > > with and without data_file. > > > > > > Signed-off-by: Max Reitz <mreitz@redhat.com> > > > --- > > > tests/qemu-iotests/110 | 7 +++++-- > > > tests/qemu-iotests/110.out | 4 ++-- > > > 2 files changed, 7 insertions(+), 4 deletions(-) > > > > > > diff --git a/tests/qemu-iotests/110 b/tests/qemu-iotests/110 > > > index f78df0e6e1..34459dcd60 100755 > > > --- a/tests/qemu-iotests/110 > > > +++ b/tests/qemu-iotests/110 > > > @@ -67,6 +67,7 @@ echo > > > # Across blkdebug without a config file, you cannot reconstruct filenames, so > > > # qemu is incapable of knowing the directory of the top image from the filename > > > # alone. However, using bdrv_dirname(), it should still work. > > > +# (Filter out the json:{} filename so this test works with external data files) > > > TEST_IMG="json:{ > > > 'driver': '$IMGFMT', > > > 'file': { > > > @@ -82,7 +83,8 @@ TEST_IMG="json:{ > > > } > > > ] > > > } > > > -}" _img_info | _filter_img_info | grep -v 'backing file format' > > > +}" _img_info | _filter_img_info | grep -v 'backing file format' \ > > > + | sed -e 's#^image: json:.*#image: json:{ /* filtered */ }#' > > > > > > echo > > > echo '=== Backing name is always relative to the backed image ===' > > > @@ -114,7 +116,8 @@ TEST_IMG="json:{ > > > } > > > ] > > > } > > > -}" _img_info | _filter_img_info | grep -v 'backing file format' > > > +}" _img_info | _filter_img_info | grep -v 'backing file format' \ > > > + | sed -e 's#^image: json:.*#image: json:{ /* filtered */ }#' > > > > > > > > > # success, all done > > > diff --git a/tests/qemu-iotests/110.out b/tests/qemu-iotests/110.out > > > index f60b26390e..f835553a99 100644 > > > --- a/tests/qemu-iotests/110.out > > > +++ b/tests/qemu-iotests/110.out > > > @@ -11,7 +11,7 @@ backing file: t.IMGFMT.base (actual path: TEST_DIR/t.IMGFMT.base) > > > > > > === Non-reconstructable filename === > > > > > > -image: json:{"driver": "IMGFMT", "file": {"set-state.0.event": "read_aio", "image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "set-state.0.new_state": 42}} > > > +image: json:{ /* filtered */ } > > > file format: IMGFMT > > > virtual size: 64 MiB (67108864 bytes) > > > backing file: t.IMGFMT.base (actual path: TEST_DIR/t.IMGFMT.base) > > > @@ -22,7 +22,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=t.IMGFMT.b > > > > > > === Nodes without a common directory === > > > > > > -image: json:{"driver": "IMGFMT", "file": {"children": [{"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, {"driver": "file", "filename": "TEST_DIR/t.IMGFMT.copy"}], "driver": "quorum", "vote- > > > threshold": 1}} > > > +image: json:{ /* filtered */ } > > > file format: IMGFMT > > > virtual size: 64 MiB (67108864 bytes) > > > backing file: t.IMGFMT.base (cannot determine actual path) > > > > Again, maybe put that into the common.filter, so new tests won't need to copy&paste this? > > Good idea. > > > Also maybe remove the image name completely from output, thus not needing the more complex regex? > > I’d prefer to still see that there is a json:{} filename instead of a > plain one. (This is important in this test because for plain filenames, > it’s generally easy to reconstruct the backing file path; it’s only > difficult for json:{} filenames.) All right, seems good. Best regards, Maxim Levitsky > > Max >
diff --git a/tests/qemu-iotests/110 b/tests/qemu-iotests/110 index f78df0e6e1..34459dcd60 100755 --- a/tests/qemu-iotests/110 +++ b/tests/qemu-iotests/110 @@ -67,6 +67,7 @@ echo # Across blkdebug without a config file, you cannot reconstruct filenames, so # qemu is incapable of knowing the directory of the top image from the filename # alone. However, using bdrv_dirname(), it should still work. +# (Filter out the json:{} filename so this test works with external data files) TEST_IMG="json:{ 'driver': '$IMGFMT', 'file': { @@ -82,7 +83,8 @@ TEST_IMG="json:{ } ] } -}" _img_info | _filter_img_info | grep -v 'backing file format' +}" _img_info | _filter_img_info | grep -v 'backing file format' \ + | sed -e 's#^image: json:.*#image: json:{ /* filtered */ }#' echo echo '=== Backing name is always relative to the backed image ===' @@ -114,7 +116,8 @@ TEST_IMG="json:{ } ] } -}" _img_info | _filter_img_info | grep -v 'backing file format' +}" _img_info | _filter_img_info | grep -v 'backing file format' \ + | sed -e 's#^image: json:.*#image: json:{ /* filtered */ }#' # success, all done diff --git a/tests/qemu-iotests/110.out b/tests/qemu-iotests/110.out index f60b26390e..f835553a99 100644 --- a/tests/qemu-iotests/110.out +++ b/tests/qemu-iotests/110.out @@ -11,7 +11,7 @@ backing file: t.IMGFMT.base (actual path: TEST_DIR/t.IMGFMT.base) === Non-reconstructable filename === -image: json:{"driver": "IMGFMT", "file": {"set-state.0.event": "read_aio", "image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "set-state.0.new_state": 42}} +image: json:{ /* filtered */ } file format: IMGFMT virtual size: 64 MiB (67108864 bytes) backing file: t.IMGFMT.base (actual path: TEST_DIR/t.IMGFMT.base) @@ -22,7 +22,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=t.IMGFMT.b === Nodes without a common directory === -image: json:{"driver": "IMGFMT", "file": {"children": [{"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, {"driver": "file", "filename": "TEST_DIR/t.IMGFMT.copy"}], "driver": "quorum", "vote-threshold": 1}} +image: json:{ /* filtered */ } file format: IMGFMT virtual size: 64 MiB (67108864 bytes) backing file: t.IMGFMT.base (cannot determine actual path)
The only difference is that the json:{} filename of the image looks different. We actually do not care about that filename in this test, we are only interested in (1) that there is a json:{} filename, and (2) whether the backing filename can be constructed. So just filter out the json:{} data, thus making this test pass both with and without data_file. Signed-off-by: Max Reitz <mreitz@redhat.com> --- tests/qemu-iotests/110 | 7 +++++-- tests/qemu-iotests/110.out | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-)