[LTP] [PATCH] openposix/twoptimers.c: Use other signal instead of SIGALRM

Yang Xu xuyang2018.jy@cn.fujitsu.com
Wed Mar 18 10:16:48 CET 2020


Currently, run this case failed as below:

Got it!  Child
Alarm clock

Parent process doesn't get SIGALRM siganl by using sigwait. It
seems SIGALRM siganl is handled by system but not user.

>From timer_create man-page, it said "
Specifying  sevp as NULL is equivalent to specifying a pointer to
a sigevent structure in which sigev_notify is SIGEV_SIGNAL, sigev_signo
is SIGALRM, and sigev_value.sival_int is the timer ID".

I think this is the reason. So use SIGILL signal to avoid system caught.

Signed-off-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
---
 .../functional/timers/timers/twoptimers.c                     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/testcases/open_posix_testsuite/functional/timers/timers/twoptimers.c b/testcases/open_posix_testsuite/functional/timers/timers/twoptimers.c
index 84bea3f0a..7e1648d5b 100644
--- a/testcases/open_posix_testsuite/functional/timers/timers/twoptimers.c
+++ b/testcases/open_posix_testsuite/functional/timers/timers/twoptimers.c
@@ -92,13 +92,13 @@ int main(int argc, char *argv[])
 			return PTS_UNRESOLVED;
 		}
 
-		if (sigaddset(&set, SIGALRM) == -1) {
+		if (sigaddset(&set, SIGILL) == -1) {
 			perror("sigaddset() failed\n");
 			return PTS_UNRESOLVED;
 		}
 
 		ev.sigev_notify = SIGEV_SIGNAL;
-		ev.sigev_signo = SIGALRM;
+		ev.sigev_signo = SIGILL;
 		if (timer_create(CLOCK_REALTIME, &ev, &tid) != 0) {
 			perror("timer_create() did not return success\n");
 			return PTS_UNRESOLVED;
-- 
2.18.1





More information about the ltp mailing list