From f132a3d8ddf20b1774a717870fa708c83b40115a Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 19 Aug 2008 14:46:52 +0000 Subject: 2008-08-19 Tim FitzGeorge PR 1296/cpukit. * psxtimer01/psxtimer.c, psxtimer01/psxtimer01.scn: POSIX timers use incorrect repeat interval. This patch fixes the following problems in the test. (1) Adds test for value of it_interval.tv_nsec. (2) Corrects test for absolute timer in past. (3) Modifies test to use different initial and repeat periods. (4) Updates psxtimer01.scn to match results. --- testsuites/psxtests/psxtimer01/psxtimer.c | 6 ++- testsuites/psxtests/psxtimer01/psxtimer01.scn | 71 ++++++++++++++------------- 2 files changed, 40 insertions(+), 37 deletions(-) (limited to 'testsuites/psxtests/psxtimer01') diff --git a/testsuites/psxtests/psxtimer01/psxtimer.c b/testsuites/psxtests/psxtimer01/psxtimer.c index bfe4e278ae..0a36b24aa8 100644 --- a/testsuites/psxtests/psxtimer01/psxtimer.c +++ b/testsuites/psxtests/psxtimer01/psxtimer.c @@ -97,6 +97,7 @@ void * task_a (void *arg) /* set the timer in periodic mode */ timerdata.it_interval = my_period; timerdata.it_value = my_period; + timerdata.it_value.tv_sec *= 2; if (timer_settime(timer_id,POSIX_TIMER_RELATIVE,&timerdata,&timergetdata) == -1) { perror ("Error in timer setting\n"); pthread_exit ((void *) -1); @@ -186,7 +187,7 @@ void * task_b (void *arg) pthread_mutex_lock (&data.mutex); clock = time(NULL); - printf("Executing task B with count = %2i %s\n", + printf("Executing task B with count = %2i %s", params->count, ctime(&clock) ); data.updated = TRUE; @@ -234,6 +235,7 @@ void * task_c (void *arg) /* set the timer in periodic mode */ timerdata.it_interval = my_period; timerdata.it_value = my_period; + timerdata.it_value.tv_sec *= 2; if (timer_settime(timer_id,POSIX_TIMER_RELATIVE,&timerdata,NULL) == -1) { perror ("Error in timer setting\n"); pthread_exit ((void *) -1); @@ -257,7 +259,7 @@ void * task_c (void *arg) pthread_cond_wait (&data.sync,&data.mutex); } clock = time(NULL); - printf("Executing task C with count = %2i %s\n", + printf("Executing task C with count = %2i %s", params->count, ctime(&clock) ); diff --git a/testsuites/psxtests/psxtimer01/psxtimer01.scn b/testsuites/psxtests/psxtimer01/psxtimer01.scn index bf8f73bca3..44ee523a7f 100644 --- a/testsuites/psxtests/psxtimer01/psxtimer01.scn +++ b/testsuites/psxtests/psxtimer01/psxtimer01.scn @@ -1,40 +1,41 @@ *** POSIX Timers Test 01 *** task A: timer_settime - value=0:0 interval=0:0 -Executing task A Fri Jan 1 00:00:01 1988 -Executing task B with x = 1 Fri Jan 1 00:00:02 1988 -Executing task A Fri Jan 1 00:00:02 1988 -Executing task C with x = 1 Fri Jan 1 00:00:03 1988 -Executing task A Fri Jan 1 00:00:03 1988 -Executing task B with x = 2 Fri Jan 1 00:00:04 1988 -Executing task A Fri Jan 1 00:00:04 1988 -Executing task A Fri Jan 1 00:00:05 1988 -Executing task B with x = 3 Fri Jan 1 00:00:06 1988 -Executing task C with x = 3 Fri Jan 1 00:00:06 1988 -Executing task A Fri Jan 1 00:00:06 1988 -Executing task A Fri Jan 1 00:00:07 1988 -Executing task B with x = 4 Fri Jan 1 00:00:08 1988 -Executing task A Fri Jan 1 00:00:08 1988 -Executing task C with x = 4 Fri Jan 1 00:00:09 1988 -Executing task A Fri Jan 1 00:00:09 1988 -Executing task B with x = 5 Fri Jan 1 00:00:10 1988 -Executing task A Fri Jan 1 00:00:10 1988 -Executing task A Fri Jan 1 00:00:11 1988 -Executing task B with x = 6 Fri Jan 1 00:00:12 1988 -Executing task C with x = 6 Fri Jan 1 00:00:12 1988 -Executing task A Fri Jan 1 00:00:12 1988 -Executing task A Fri Jan 1 00:00:13 1988 -Executing task B with x = 7 Fri Jan 1 00:00:14 1988 -Executing task A Fri Jan 1 00:00:14 1988 -Executing task C with x = 7 Fri Jan 1 00:00:15 1988 -Executing task A Fri Jan 1 00:00:15 1988 -Executing task B with x = 8 Fri Jan 1 00:00:16 1988 -Executing task A Fri Jan 1 00:00:16 1988 -Executing task A Fri Jan 1 00:00:17 1988 -Executing task B with x = 9 Fri Jan 1 00:00:18 1988 -Executing task C with x = 9 Fri Jan 1 00:00:18 1988 -Executing task A Fri Jan 1 00:00:18 1988 +Executing task B with count = 10 Fri Jan 1 00:00:02 1988 +Executing task A with count = 20 Fri Jan 1 00:00:02 1988 +Executing task A with count = 19 Fri Jan 1 00:00:03 1988 +Executing task B with count = 9 Fri Jan 1 00:00:04 1988 +Executing task A with count = 18 Fri Jan 1 00:00:04 1988 +Executing task A with count = 17 Fri Jan 1 00:00:05 1988 +Executing task B with count = 8 Fri Jan 1 00:00:06 1988 +Executing task C with count = 6 Fri Jan 1 00:00:06 1988 +Executing task A with count = 16 Fri Jan 1 00:00:06 1988 +Executing task A with count = 15 Fri Jan 1 00:00:07 1988 +Executing task B with count = 7 Fri Jan 1 00:00:08 1988 +Executing task A with count = 14 Fri Jan 1 00:00:08 1988 +Executing task C with count = 5 Fri Jan 1 00:00:09 1988 +Executing task A with count = 13 Fri Jan 1 00:00:09 1988 +Executing task B with count = 6 Fri Jan 1 00:00:10 1988 +Executing task A with count = 12 Fri Jan 1 00:00:10 1988 +Executing task A with count = 11 Fri Jan 1 00:00:11 1988 +Executing task B with count = 5 Fri Jan 1 00:00:12 1988 +Executing task C with count = 4 Fri Jan 1 00:00:12 1988 +Executing task A with count = 10 Fri Jan 1 00:00:12 1988 +Executing task A with count = 9 Fri Jan 1 00:00:13 1988 +Executing task B with count = 4 Fri Jan 1 00:00:14 1988 +Executing task A with count = 8 Fri Jan 1 00:00:14 1988 +Executing task C with count = 3 Fri Jan 1 00:00:15 1988 +Executing task A with count = 7 Fri Jan 1 00:00:15 1988 +Executing task B with count = 3 Fri Jan 1 00:00:16 1988 +Executing task A with count = 6 Fri Jan 1 00:00:16 1988 +Executing task A with count = 5 Fri Jan 1 00:00:17 1988 +Executing task B with count = 2 Fri Jan 1 00:00:18 1988 +Executing task C with count = 2 Fri Jan 1 00:00:18 1988 +Executing task A with count = 4 Fri Jan 1 00:00:18 1988 +Executing task A with count = 3 Fri Jan 1 00:00:19 1988 +Executing task B with count = 1 Fri Jan 1 00:00:20 1988 +Executing task A with count = 2 Fri Jan 1 00:00:20 1988 +Executing task C with count = 1 Fri Jan 1 00:00:21 1988 +Executing task A with count = 1 Fri Jan 1 00:00:21 1988 task C: timer_getoverrun - overruns=0 task C: timer_gettime - 2:0 remaining from 3:0 -Executing task A Fri Jan 1 00:00:19 1988 -Executing task B with x = 10 Fri Jan 1 00:00:20 1988 *** END OF POSIX Timers Test 01 *** -- cgit v1.2.3