[ACT][PATCH 2/3] UBUNTU: SAUCE: ubuntu_ltp_syscalls: skip semctl09 on older Glibc

Krzysztof Kozlowski krzysztof.kozlowski at canonical.com
Mon Jun 7 15:23:12 UTC 2021


The semctl09 fails:

    tst_test.c:1261: TINFO: Timeout per run is 0h 05m 00s
    semctl09.c:70: TINFO: Test libc semctl()
    semctl09.c:132: TINFO: Test SEM_STAT_ANY with nobody user
    semctl09.c:148: TFAIL: SEM_STAT_ANY doesn't pass the buffer specified by the caller to kernel
    semctl09.c:132: TINFO: Test SEM_STAT_ANY with root user
    semctl09.c:148: TFAIL: SEM_STAT_ANY doesn't pass the buffer specified by the caller to kernel

The test depends on Glibc commit 574500a108be ("sysvipc: Fix
SEM_STAT_ANY kernel argument pass [BZ #26637]") which should be fixed
around Glibc v2.34.  Blacklist it if current libc is older.

BugLink: https://bugs.launchpad.net/bugs/1910312
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski at canonical.com>
---
 ubuntu_ltp_syscalls/testcase_blacklist.py  | 10 +++++++++-
 ubuntu_ltp_syscalls/ubuntu_ltp_syscalls.py | 11 +++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/ubuntu_ltp_syscalls/testcase_blacklist.py b/ubuntu_ltp_syscalls/testcase_blacklist.py
index 3718a7d6485a..2705c583a501 100644
--- a/ubuntu_ltp_syscalls/testcase_blacklist.py
+++ b/ubuntu_ltp_syscalls/testcase_blacklist.py
@@ -35,5 +35,13 @@ blacklist_db = {
             'copy_file_range02 copy_file_range02': {
                 'comment': 'copy_file_range02 will not get fixed < 5.2.0 (https://lwn.net/Articles/774114)'}
         }
-    }
+    },
+    'libc': {
+        # Coming with 574500a108be1d2a6a0dc97a075c9e0a98371aba
+        '2.34': {
+            'semctl09 semctl09': {
+                'comment': 'semctl09 will not get fixed for glibc < 2.34 (lp: 1910312)',
+            },
+        },
+    },
 }
diff --git a/ubuntu_ltp_syscalls/ubuntu_ltp_syscalls.py b/ubuntu_ltp_syscalls/ubuntu_ltp_syscalls.py
index 5d99195908aa..296a8aa33777 100644
--- a/ubuntu_ltp_syscalls/ubuntu_ltp_syscalls.py
+++ b/ubuntu_ltp_syscalls/ubuntu_ltp_syscalls.py
@@ -72,6 +72,7 @@ class ubuntu_ltp_syscalls(test.test):
             self.series = distro.codename()
         self.flavour = re.split('-\d*-', platform.uname()[2])[-1]
         self.kernel = platform.uname()[2].split('-')[0]
+        self.libc = platform.libc_ver()[1]
 
     # setup
     #
@@ -132,6 +133,16 @@ class ubuntu_ltp_syscalls(test.test):
                 if StrictVersion(self.kernel) < StrictVersion(_kernel):
                     _blacklist += list(blacklist_db['kernel'][_kernel].keys())
 
+        try:
+            current_version = parse(self.libc)
+            for _libc in blacklist_db['libc']:
+                if current_version < parse(_libc):
+                    _blacklist += list(blacklist_db['libc'][_libc].keys())
+        except NameError:
+            for _libc in blacklist_db['libc']:
+                if StrictVersion(self.libc) < StrictVersion(_libc):
+                    _blacklist += list(blacklist_db['libc'][_libc].keys())
+
         return _blacklist
 
     def should_stop_timesyncd(self, test):
-- 
2.27.0




More information about the kernel-team mailing list