qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 08/10] iotests.py: add verify_o_direct helper


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH v4 08/10] iotests.py: add verify_o_direct helper
Date: Fri, 21 Aug 2020 00:09:51 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

21.08.2020 00:00, Nir Soffer wrote:
On Thu, Aug 20, 2020 at 9:49 PM Vladimir Sementsov-Ogievskiy
<vsementsov@virtuozzo.com> wrote:

Add python notrun-helper similar to _check_o_direct for bash tests.
To be used in the following commit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
  tests/qemu-iotests/iotests.py | 6 ++++++
  1 file changed, 6 insertions(+)

diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 717b5b652c..369e9918b4 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -1083,6 +1083,12 @@ def _verify_aio_mode(supported_aio_modes: Sequence[str] = 
()) -> None:
      if supported_aio_modes and (aiomode not in supported_aio_modes):
          notrun('not suitable for this aio mode: %s' % aiomode)

+def verify_o_direct() -> None:
+    with FilePath('test_o_direct') as f:
+        qemu_img_create('-f', 'raw', f, '1M')
+        if 'O_DIRECT' in qemu_io('-f', 'raw', '-t', 'none', '-c', 'quit', f):
+            notrun(f'file system at {test_dir} does not support O_DIRECT')

Why not:

     with FilePath('test_o_direct') as f:
         try:
             fd = os.open(f, os.O_DIRECT | os.O_CREAT | os.O_RDWR)
         except OSError as e:
             if e.errno != errno.EINVAL:
                 raise
             notrun(...)
         else:
            os.close(fd)

More verbose, but the intent is more clear, and we do not depend on the output
of qemu-io which is not a public API. For example if someone improves qemu-io
to fail with:

     Direct I/O is not supported

It would break the tests using this helper.


Agree, that's better. Will use it, thanks!


+
  def supports_quorum():
      return 'quorum' in qemu_img_pipe('--help')

--
2.21.3





--
Best regards,
Vladimir



reply via email to

[Prev in Thread] Current Thread [Next in Thread]