diff mbox series

[v5,08/10] iotests.py: add verify_o_direct helper

Message ID 20200821141123.28538-9-vsementsov@virtuozzo.com
State New
Headers show
Series [v5,01/10] block: simplify comment to BDRV_REQ_SERIALISING | expand

Commit Message

Vladimir Sementsov-Ogievskiy Aug. 21, 2020, 2:11 p.m. UTC
Add python notrun-helper similar to _check_o_direct for bash tests.
To be used in the following commit.

Suggested-by: Nir Soffer <nsoffer@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
 tests/qemu-iotests/iotests.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)
diff mbox series

Patch

diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 717b5b652c..7f1aa187a9 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -29,6 +29,7 @@  import struct
 import subprocess
 import sys
 import time
+import errno
 from typing import (Any, Callable, Dict, Iterable,
                     List, Optional, Sequence, Tuple, TypeVar)
 import unittest
@@ -1083,6 +1084,17 @@  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:
+        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(f'file system at {test_dir} does not support O_DIRECT')
+        else:
+            os.close(fd)
+
 def supports_quorum():
     return 'quorum' in qemu_img_pipe('--help')