diff mbox series

[v3,1/3] iotests.py: Add supports_qcow2_zstd_compression()

Message ID 20220323105522.53660-2-hreitz@redhat.com (mailing list archive)
State New, archived
Headers show
Series iotests: Check for zstd support | expand

Commit Message

Hanna Czenczek March 23, 2022, 10:55 a.m. UTC
Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
---
 tests/qemu-iotests/iotests.py | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

Comments

Vladimir Sementsov-Ogievskiy March 23, 2022, 11:47 a.m. UTC | #1
23.03.2022 13:55, Hanna Reitz wrote:
> Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> ---
>   tests/qemu-iotests/iotests.py | 20 ++++++++++++++++++++
>   1 file changed, 20 insertions(+)
> 
> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> index fcec3e51e5..fe10a6cf05 100644
> --- a/tests/qemu-iotests/iotests.py
> +++ b/tests/qemu-iotests/iotests.py
> @@ -1471,6 +1471,26 @@ def verify_working_luks():
>       if not working:
>           notrun(reason)
>   
> +def supports_qcow2_zstd_compression() -> bool:
> +    img_file = f'{test_dir}/qcow2-zstd-test.qcow2'
> +    res = qemu_img('create', '-f', 'qcow2', '-o', 'compression_type=zstd',
> +                   img_file, '0',
> +                   check=False)

check=False may be squashed into previous line

> +    try:
> +        os.remove(img_file)
> +    except OSError:
> +        pass
> +
> +    if res.returncode == 1 and \
> +            "'compression-type' does not accept value 'zstd'" in res.stdout:
> +        return False
> +    else:
> +        return True

May be:

return not(res.returncode == 1 and
    "'compression-type' does not accept value 'zstd'" in res.stdout)

> +
> +def verify_qcow2_zstd_compression():
> +    if not supports_qcow2_zstd_compression():
> +        notrun('zstd compression not supported')
> +
>   def qemu_pipe(*args: str) -> str:
>       """
>       Run qemu with an option to print something and exit (e.g. a help option).

anyway:
Reviewed-by: Vladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru>
diff mbox series

Patch

diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index fcec3e51e5..fe10a6cf05 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -1471,6 +1471,26 @@  def verify_working_luks():
     if not working:
         notrun(reason)
 
+def supports_qcow2_zstd_compression() -> bool:
+    img_file = f'{test_dir}/qcow2-zstd-test.qcow2'
+    res = qemu_img('create', '-f', 'qcow2', '-o', 'compression_type=zstd',
+                   img_file, '0',
+                   check=False)
+    try:
+        os.remove(img_file)
+    except OSError:
+        pass
+
+    if res.returncode == 1 and \
+            "'compression-type' does not accept value 'zstd'" in res.stdout:
+        return False
+    else:
+        return True
+
+def verify_qcow2_zstd_compression():
+    if not supports_qcow2_zstd_compression():
+        notrun('zstd compression not supported')
+
 def qemu_pipe(*args: str) -> str:
     """
     Run qemu with an option to print something and exit (e.g. a help option).