aboutsummaryrefslogtreecommitdiff
path: root/testcases/kernel
diff options
context:
space:
mode:
authorXiao Yang <yangx.jy@cn.fujitsu.com>2019-04-05 15:46:24 +0800
committerXiao Yang <yangx.jy@cn.fujitsu.com>2019-04-08 09:45:36 +0800
commita600c36b0a7e0e00912375a5ad6ed62ca9ce5b25 (patch)
tree0f7180e290ccfc480d169165860a61e0999a9047 /testcases/kernel
parent66c59e9d2df68436cf0dbb441a27835823d96d56 (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.c8
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;