]> granicus.if.org Git - strace/commitdiff
tests: adjust rt_sigpending to older kernels
authorDmitry V. Levin <ldv@altlinux.org>
Tue, 19 Apr 2016 22:16:30 +0000 (22:16 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 20 Apr 2016 01:08:13 +0000 (01:08 +0000)
With linux kernels older than v3.9-rc1, compat rt_sigpending syscall
could fail with EFAULT in cases where on later kernels it succeeds.
Adjust the test to handle both cases properly.

* tests/rt_sigpending.c (iterate): Stop iterations if rt_sigpending
failed with EFAULT.

tests/rt_sigpending.c

index 16dfa7e2afc1cd56923ddf08bd004f2a892822ed..a6381cd8bd1dde5b015a76a66c34cc094d3ad8f5 100644 (file)
@@ -48,8 +48,11 @@ static void
 iterate(const char *const text, unsigned int size, void *set)
 {
        for (;;) {
-               if (k_sigpending(set, size))
-                       perror_msg_and_fail("rt_sigpending");
+               if (k_sigpending(set, size)) {
+                       tprintf("rt_sigpending(%p, %u) = -1 EFAULT (%m)\n",
+                               set, size);
+                       break;
+               }
                if (size) {
 #if WORDS_BIGENDIAN
                        if (size < sizeof(long))