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é <berrange@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20260121111140.99482-1-thuth@redhat.com>
This commit is contained in:
Thomas Huth
2026-01-21 12:11:40 +01:00
parent b9a4553e29
commit ef325d0c87
3 changed files with 16 additions and 3 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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):
"""