diff mbox series

[06/14] iotest 302: use img_info_log() helper

Message ID 20210705091549.178335-7-vsementsov@virtuozzo.com (mailing list archive)
State New, archived
Headers show
Series iotests: support zstd | expand

Commit Message

Vladimir Sementsov-Ogievskiy July 5, 2021, 9:15 a.m. UTC
Instead of qemu_img_log("info", ..) use generic helper img_info_log().

img_info_log() has smarter logic. For example it use filter_img_info()
to filter output, which in turns filter a compression type. So it will
help us in future when we implement a possibility to use zstd
compression by default (with help of some runtime config file or maybe
build option). For now to test you should recompile qemu with a small
patch:

    --- a/block/qcow2.c
    +++ b/block/qcow2.c
    @@ -3540,6 +3540,11 @@ qcow2_co_create(BlockdevCreateOptions *create_options, Error **errp)
             }
         }

    +    if (!qcow2_opts->has_compression_type && version >= 3) {
    +        qcow2_opts->has_compression_type = true;
    +        qcow2_opts->compression_type = QCOW2_COMPRESSION_TYPE_ZSTD;
    +    }
    +
         if (qcow2_opts->has_compression_type &&
             qcow2_opts->compression_type != QCOW2_COMPRESSION_TYPE_ZLIB) {

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
 tests/qemu-iotests/302     | 3 ++-
 tests/qemu-iotests/302.out | 7 +++----
 2 files changed, 5 insertions(+), 5 deletions(-)

Comments

Vladimir Sementsov-Ogievskiy July 5, 2021, 11:02 a.m. UTC | #1
05.07.2021 12:15, Vladimir Sementsov-Ogievskiy wrote:
> Instead of qemu_img_log("info", ..) use generic helper img_info_log().
> 
> img_info_log() has smarter logic. For example it use filter_img_info()
> to filter output, which in turns filter a compression type. So it will
> help us in future when we implement a possibility to use zstd
> compression by default (with help of some runtime config file or maybe
> build option). For now to test you should recompile qemu with a small
> patch:
> 
>      --- a/block/qcow2.c
>      +++ b/block/qcow2.c
>      @@ -3540,6 +3540,11 @@ qcow2_co_create(BlockdevCreateOptions *create_options, Error **errp)
>               }
>           }
> 
>      +    if (!qcow2_opts->has_compression_type && version >= 3) {
>      +        qcow2_opts->has_compression_type = true;
>      +        qcow2_opts->compression_type = QCOW2_COMPRESSION_TYPE_ZSTD;
>      +    }
>      +
>           if (qcow2_opts->has_compression_type &&
>               qcow2_opts->compression_type != QCOW2_COMPRESSION_TYPE_ZLIB) {
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy<vsementsov@virtuozzo.com>

Wow, that was bad idea to insert patch into commit message even with indent: it breaks rpm build for me.

So, reword like this:

     build option). For now to test you should recompile qemu with a small
     addition into block/qcow2.c before
       "if (qcow2_opts->has_compression_type":
     
         if (!qcow2_opts->has_compression_type && version >= 3) {
             qcow2_opts->has_compression_type = true;
             qcow2_opts->compression_type = QCOW2_COMPRESSION_TYPE_ZSTD;
         }
Max Reitz July 16, 2021, 11:39 a.m. UTC | #2
On 05.07.21 11:15, Vladimir Sementsov-Ogievskiy wrote:
> Instead of qemu_img_log("info", ..) use generic helper img_info_log().
>
> img_info_log() has smarter logic. For example it use filter_img_info()
> to filter output, which in turns filter a compression type. So it will
> help us in future when we implement a possibility to use zstd
> compression by default (with help of some runtime config file or maybe
> build option). For now to test you should recompile qemu with a small
> patch:
>
>      --- a/block/qcow2.c
>      +++ b/block/qcow2.c
>      @@ -3540,6 +3540,11 @@ qcow2_co_create(BlockdevCreateOptions *create_options, Error **errp)
>               }
>           }
>
>      +    if (!qcow2_opts->has_compression_type && version >= 3) {
>      +        qcow2_opts->has_compression_type = true;
>      +        qcow2_opts->compression_type = QCOW2_COMPRESSION_TYPE_ZSTD;
>      +    }
>      +
>           if (qcow2_opts->has_compression_type &&
>               qcow2_opts->compression_type != QCOW2_COMPRESSION_TYPE_ZLIB) {
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
>   tests/qemu-iotests/302     | 3 ++-
>   tests/qemu-iotests/302.out | 7 +++----
>   2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/tests/qemu-iotests/302 b/tests/qemu-iotests/302
> index 5695af4914..2180dbc896 100755
> --- a/tests/qemu-iotests/302
> +++ b/tests/qemu-iotests/302
> @@ -34,6 +34,7 @@ from iotests import (
>       qemu_img_measure,
>       qemu_io,
>       qemu_nbd_popen,
> +    img_info_log,
>   )
>   
>   iotests.script_initialize(supported_fmts=["qcow2"])
> @@ -99,7 +100,7 @@ with tarfile.open(tar_file, "w") as tar:
>               nbd_uri)
>   
>           iotests.log("=== Converted image info ===")
> -        qemu_img_log("info", nbd_uri)
> +        img_info_log(nbd_uri)

There’s another `qemu_img_log("info", nbd_uri)` call above this place.  
We can’t use `img_info_log()` there, because in that case, the image is 
not in qcow2 format (which is the test’s image format), but 
`img_info_log()` enforces “-f {imgfmt}”.  It would have been nice to 
have a comment on that somewhere, though.

But, well.

Reviewed-by: Max Reitz <mreitz@redhat.com>

(And speaking in principle, I don’t think I like the broad 
img_info_log() very much anyway, because I feel like tests should rather 
only have the actually relevant bits in their reference outputs…)

>   
>           iotests.log("=== Converted image check ===")
>           qemu_img_log("check", nbd_uri)
> diff --git a/tests/qemu-iotests/302.out b/tests/qemu-iotests/302.out
> index e2f6077e83..3e7c281b91 100644
> --- a/tests/qemu-iotests/302.out
> +++ b/tests/qemu-iotests/302.out
> @@ -6,14 +6,13 @@ virtual size: 448 KiB (458752 bytes)
>   disk size: unavailable
>   
>   === Converted image info ===
> -image: nbd+unix:///exp?socket=SOCK_DIR/PID-nbd-sock
> -file format: qcow2
> +image: TEST_IMG
> +file format: IMGFMT
>   virtual size: 1 GiB (1073741824 bytes)
> -disk size: unavailable
>   cluster_size: 65536
>   Format specific information:
>       compat: 1.1
> -    compression type: zlib
> +    compression type: COMPRESSION_TYPE
>       lazy refcounts: false
>       refcount bits: 16
>       corrupt: false
Vladimir Sementsov-Ogievskiy July 16, 2021, 12:32 p.m. UTC | #3
16.07.2021 14:39, Max Reitz wrote:
> On 05.07.21 11:15, Vladimir Sementsov-Ogievskiy wrote:
>> Instead of qemu_img_log("info", ..) use generic helper img_info_log().
>>
>> img_info_log() has smarter logic. For example it use filter_img_info()
>> to filter output, which in turns filter a compression type. So it will
>> help us in future when we implement a possibility to use zstd
>> compression by default (with help of some runtime config file or maybe
>> build option). For now to test you should recompile qemu with a small
>> patch:
>>
>>      --- a/block/qcow2.c
>>      +++ b/block/qcow2.c
>>      @@ -3540,6 +3540,11 @@ qcow2_co_create(BlockdevCreateOptions *create_options, Error **errp)
>>               }
>>           }
>>
>>      +    if (!qcow2_opts->has_compression_type && version >= 3) {
>>      +        qcow2_opts->has_compression_type = true;
>>      +        qcow2_opts->compression_type = QCOW2_COMPRESSION_TYPE_ZSTD;
>>      +    }
>>      +
>>           if (qcow2_opts->has_compression_type &&
>>               qcow2_opts->compression_type != QCOW2_COMPRESSION_TYPE_ZLIB) {
>>
>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>> ---
>>   tests/qemu-iotests/302     | 3 ++-
>>   tests/qemu-iotests/302.out | 7 +++----
>>   2 files changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/tests/qemu-iotests/302 b/tests/qemu-iotests/302
>> index 5695af4914..2180dbc896 100755
>> --- a/tests/qemu-iotests/302
>> +++ b/tests/qemu-iotests/302
>> @@ -34,6 +34,7 @@ from iotests import (
>>       qemu_img_measure,
>>       qemu_io,
>>       qemu_nbd_popen,
>> +    img_info_log,
>>   )
>>   iotests.script_initialize(supported_fmts=["qcow2"])
>> @@ -99,7 +100,7 @@ with tarfile.open(tar_file, "w") as tar:
>>               nbd_uri)
>>           iotests.log("=== Converted image info ===")
>> -        qemu_img_log("info", nbd_uri)
>> +        img_info_log(nbd_uri)
> 
> There’s another `qemu_img_log("info", nbd_uri)` call above this place. We can’t use `img_info_log()` there, because in that case, the image is not in qcow2 format (which is the test’s image format), but `img_info_log()` enforces “-f {imgfmt}”.  It would have been nice to have a comment on that somewhere, though.

I'll add a comment. Actually, I only fixed places which breaks when I set zstd by default. That's why some things may be not covered.

> 
> But, well.
> 
> Reviewed-by: Max Reitz <mreitz@redhat.com>
> 
> (And speaking in principle, I don’t think I like the broad img_info_log() very much anyway, because I feel like tests should rather only have the actually relevant bits in their reference outputs…)

I agree, extra useless information in test outputs is always a pain.. We should pay more attention to it when add new tests.

> 
>>           iotests.log("=== Converted image check ===")
>>           qemu_img_log("check", nbd_uri)
>> diff --git a/tests/qemu-iotests/302.out b/tests/qemu-iotests/302.out
>> index e2f6077e83..3e7c281b91 100644
>> --- a/tests/qemu-iotests/302.out
>> +++ b/tests/qemu-iotests/302.out
>> @@ -6,14 +6,13 @@ virtual size: 448 KiB (458752 bytes)
>>   disk size: unavailable
>>   === Converted image info ===
>> -image: nbd+unix:///exp?socket=SOCK_DIR/PID-nbd-sock
>> -file format: qcow2
>> +image: TEST_IMG
>> +file format: IMGFMT
>>   virtual size: 1 GiB (1073741824 bytes)
>> -disk size: unavailable
>>   cluster_size: 65536
>>   Format specific information:
>>       compat: 1.1
>> -    compression type: zlib
>> +    compression type: COMPRESSION_TYPE
>>       lazy refcounts: false
>>       refcount bits: 16
>>       corrupt: false
>
diff mbox series

Patch

diff --git a/tests/qemu-iotests/302 b/tests/qemu-iotests/302
index 5695af4914..2180dbc896 100755
--- a/tests/qemu-iotests/302
+++ b/tests/qemu-iotests/302
@@ -34,6 +34,7 @@  from iotests import (
     qemu_img_measure,
     qemu_io,
     qemu_nbd_popen,
+    img_info_log,
 )
 
 iotests.script_initialize(supported_fmts=["qcow2"])
@@ -99,7 +100,7 @@  with tarfile.open(tar_file, "w") as tar:
             nbd_uri)
 
         iotests.log("=== Converted image info ===")
-        qemu_img_log("info", nbd_uri)
+        img_info_log(nbd_uri)
 
         iotests.log("=== Converted image check ===")
         qemu_img_log("check", nbd_uri)
diff --git a/tests/qemu-iotests/302.out b/tests/qemu-iotests/302.out
index e2f6077e83..3e7c281b91 100644
--- a/tests/qemu-iotests/302.out
+++ b/tests/qemu-iotests/302.out
@@ -6,14 +6,13 @@  virtual size: 448 KiB (458752 bytes)
 disk size: unavailable
 
 === Converted image info ===
-image: nbd+unix:///exp?socket=SOCK_DIR/PID-nbd-sock
-file format: qcow2
+image: TEST_IMG
+file format: IMGFMT
 virtual size: 1 GiB (1073741824 bytes)
-disk size: unavailable
 cluster_size: 65536
 Format specific information:
     compat: 1.1
-    compression type: zlib
+    compression type: COMPRESSION_TYPE
     lazy refcounts: false
     refcount bits: 16
     corrupt: false