[LTP] [PATCH 1/2] syscalls/rt_sigsuspend01: ignore reserved signals

Steve Muckle smuckle@google.com
Fri Nov 9 02:46:15 CET 2018


Some signals may be internally used by the C library. Do not attempt to
verify these.

Change-Id: Ia5b8148c9273b9d13001b07824e9d55680382519
---
 .../syscalls/rt_sigsuspend/rt_sigsuspend01.c      | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c b/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c
index c8c228a47..edc913b44 100644
--- a/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c
+++ b/testcases/kernel/syscalls/rt_sigsuspend/rt_sigsuspend01.c
@@ -87,19 +87,22 @@ int main(int ac, char **av)
 			SIGSETSIZE));
 		TEST(alarm(0));
 		if (result == -1 && TEST_ERRNO != EINTR) {
+			int i;
 			TEST(ltp_syscall(__NR_rt_sigprocmask, SIG_UNBLOCK, 0,
 				&set2, SIGSETSIZE));
-			if (TEST_RETURN == -1) {
+			if (TEST_RETURN == -1)
 				tst_brkm(TFAIL | TTERRNO, cleanup,
 					 "rt_sigprocmask failed");
-			} else if (memcmp(&set1, &set2,
-				   sizeof(unsigned long))) {
-				tst_brkm(TFAIL | TTERRNO, cleanup,
+			for (i = 1; i < SIGRTMAX; i++) {
+				if (i >= __SIGRTMIN && i < SIGRTMIN)
+					continue;
+				if (sigismember(&set1, i) !=
+				    sigismember(&set2, i))
+					tst_brkm(TFAIL | TTERRNO, cleanup,
 					 "rt_sigsuspend failed to "
 					 "preserve signal mask");
-			} else {
-				tst_resm(TPASS, "rt_sigsuspend PASSED");
 			}
+			tst_resm(TPASS, "rt_sigsuspend PASSED");
 		} else {
 			tst_resm(TFAIL | TTERRNO, "rt_sigsuspend failed");
 		}
-- 
2.19.1.930.g4563a0d9d0-goog



More information about the ltp mailing list