From: Thomas Huth Date: Wed, 21 Jan 2026 11:11:40 +0000 (+0100) Subject: tests/functional/x86_64: Limit the memlock test to Linux hosts X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef325d0c87e214779080a9dc38e508cb8ceb46d5;p=thirdparty%2Fqemu.git tests/functional/x86_64: Limit the memlock test to Linux hosts The memlock test analyzes /proc/*/status files and expects the layout from Linux in there. However, these files also exist on NetBSD hosts with a completely different layout, causing this test to fail. Thus limit the test to Linux hosts now. We already have a decorator to skip a test if it is running on a certain host system, but in this case, we rather want to skip if we are not running on a specific host system, so introduce a new @skipUnlessOperatingSystem decorator for this job. Reviewed-by: Daniel P. Berrangé Reviewed-by: Zhao Liu Signed-off-by: Thomas Huth Message-ID: <20260121111140.99482-1-thuth@redhat.com> --- diff --git a/tests/functional/qemu_test/__init__.py b/tests/functional/qemu_test/__init__.py index 320193591b..03e5c73d39 100644 --- a/tests/functional/qemu_test/__init__.py +++ b/tests/functional/qemu_test/__init__.py @@ -15,8 +15,8 @@ from .testcase import QemuBaseTest, QemuUserTest, QemuSystemTest from .linuxkernel import LinuxKernelTest from .decorators import skipIfMissingCommands, skipIfNotMachine, \ skipFlakyTest, skipUntrustedTest, skipBigDataTest, skipSlowTest, \ - skipIfMissingImports, skipIfOperatingSystem, skipLockedMemoryTest, \ - skipIfMissingEnv + skipIfMissingImports, skipIfOperatingSystem, skipUnlessOperatingSystem, \ + skipLockedMemoryTest, skipIfMissingEnv from .archive import archive_extract from .uncompress import uncompress from .gdb import GDB diff --git a/tests/functional/qemu_test/decorators.py b/tests/functional/qemu_test/decorators.py index 807418359a..fcf236ecfd 100644 --- a/tests/functional/qemu_test/decorators.py +++ b/tests/functional/qemu_test/decorators.py @@ -57,6 +57,18 @@ def skipIfOperatingSystem(*args): 'running on an OS (%s) that is not able to run this test' % ", ".join(args)) +def skipUnlessOperatingSystem(*args): + ''' + Decorator to skip execution of a test if the current host + operating system does not match one of the allowed ones. + Example: + + @skipUnlessOperatingSystem("Linux", "Darwin") + ''' + return skipUnless(platform.system() in args, + 'not running on one of the required operating systems (%s)' % + ", ".join(args)) + def skipIfNotMachine(*args): ''' Decorator to skip execution of a test if the current diff --git a/tests/functional/x86_64/test_memlock.py b/tests/functional/x86_64/test_memlock.py index f970a2c309..d88843ab5f 100755 --- a/tests/functional/x86_64/test_memlock.py +++ b/tests/functional/x86_64/test_memlock.py @@ -14,12 +14,13 @@ import re from typing import Dict from qemu_test import QemuSystemTest -from qemu_test import skipLockedMemoryTest +from qemu_test import skipLockedMemoryTest, skipUnlessOperatingSystem STATUS_VALUE_PATTERN = re.compile(r'^(\w+):\s+(\d+) kB', re.MULTILINE) +@skipUnlessOperatingSystem('Linux') @skipLockedMemoryTest(2_097_152) # 2GB class MemlockTest(QemuSystemTest): """