diff options
author | Xiao Yang <yangx.jy@cn.fujitsu.com> | 2019-04-05 15:46:24 +0800 |
---|---|---|
committer | Xiao Yang <yangx.jy@cn.fujitsu.com> | 2019-04-08 09:45:36 +0800 |
commit | a600c36b0a7e0e00912375a5ad6ed62ca9ce5b25 (patch) | |
tree | 0f7180e290ccfc480d169165860a61e0999a9047 /testcases/kernel | |
parent | 66c59e9d2df68436cf0dbb441a27835823d96d56 (diff) |
syscalls/sigpending02.c: Add libc sigpending() detection && reset sighandler_counter
1) bionic(Android libc) doesn't implement libc sigpending() currently,
so we can skip it on Android by the detection. Also add break to
avoid potential compiler warnings.
2) Fix sigpending02 -i n by resetting sighandler_counter variable.
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
Diffstat (limited to 'testcases/kernel')
-rw-r--r-- | testcases/kernel/syscalls/sigpending/sigpending02.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/testcases/kernel/syscalls/sigpending/sigpending02.c b/testcases/kernel/syscalls/sigpending/sigpending02.c index d75807d77..b9a3c5e84 100644 --- a/testcases/kernel/syscalls/sigpending/sigpending02.c +++ b/testcases/kernel/syscalls/sigpending/sigpending02.c @@ -13,6 +13,7 @@ * Test 2: Call sigpending(sigset_t*=-1), it should return -1 with errno EFAULT. */ +#include "config.h" #include "tst_test.h" #include "ltp_signal.h" #include "lapi/syscalls.h" @@ -36,7 +37,12 @@ static int tested_sigpending(sigset_t *sigset) { switch (tst_variant) { case 0: +#ifndef HAVE_SIGPENDING + tst_brk(TCONF, "libc sigpending() is not implemented"); +#else return sigpending(sigset); +#endif + break; case 1: return tst_syscall(__NR_sigpending, sigset); case 2: @@ -57,6 +63,8 @@ static void test_sigpending(void) int i; /* loop index */ + sighandler_counter = 0; + /* set up signal mask and handler */ sigset_t only_SIGUSR, old_mask; sighandler_t old_sighandler1, old_sighandler2; |