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)
--
2.21.0
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
>
© 2016 - 2025 Red Hat, Inc.