@@ -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");
}