summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_mmap.py
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2024-09-20 13:37:49 (GMT)
committerGitHub <noreply@github.com>2024-09-20 13:37:49 (GMT)
commit342e654b8eda24c68da64cc21bc9583e480d9e8e (patch)
treed28be64fdd9d7e5de97f215b11b4b5776a2593be /Lib/test/test_mmap.py
parent1a577729e347714eb819fa3a3a00149406c24e5e (diff)
downloadcpython-342e654b8eda24c68da64cc21bc9583e480d9e8e.zip
cpython-342e654b8eda24c68da64cc21bc9583e480d9e8e.tar.gz
cpython-342e654b8eda24c68da64cc21bc9583e480d9e8e.tar.bz2
gh-124213: Skip tests failing inside systemd-nspawn --suppress-sync=true (#124215)
Add a helper function that checks whether the test suite is running inside a systemd-nspawn container, and skip the few tests failing with `--suppress-sync=true` in that case. The tests are failing because `--suppress-sync=true` stubs out `fsync()`, `fdatasync()` and `msync()` calls, and therefore they always return success without checking for invalid arguments. Call `os.open(__file__, os.O_RDONLY | os.O_SYNC)` and check the errno to detect whether `--suppress-sync=true` is actually used, and skip the tests only in that scenario.
Diffstat (limited to 'Lib/test/test_mmap.py')
-rw-r--r--Lib/test/test_mmap.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py
index a1cf538..b2a299e 100644
--- a/Lib/test/test_mmap.py
+++ b/Lib/test/test_mmap.py
@@ -1,5 +1,6 @@
from test.support import (
requires, _2G, _4G, gc_collect, cpython_only, is_emscripten, is_apple,
+ in_systemd_nspawn_sync_suppressed,
)
from test.support.import_helper import import_module
from test.support.os_helper import TESTFN, unlink
@@ -839,7 +840,8 @@ class MmapTests(unittest.TestCase):
mm.write(b'python')
result = mm.flush()
self.assertIsNone(result)
- if sys.platform.startswith(('linux', 'android')):
+ if (sys.platform.startswith(('linux', 'android'))
+ and not in_systemd_nspawn_sync_suppressed()):
# 'offset' must be a multiple of mmap.PAGESIZE on Linux.
# See bpo-34754 for details.
self.assertRaises(OSError, mm.flush, 1, len(b'python'))