summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests/psxtimer01
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-08-19 14:46:52 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-08-19 14:46:52 +0000
commitf132a3d8ddf20b1774a717870fa708c83b40115a (patch)
tree9973dc5f8d0c108d97eb14c88560c7640582e768 /testsuites/psxtests/psxtimer01
parent2008-08-19 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-f132a3d8ddf20b1774a717870fa708c83b40115a.tar.bz2
2008-08-19 Tim FitzGeorge <tim.fitzgeorge@astrium.eads.net>
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.
Diffstat (limited to 'testsuites/psxtests/psxtimer01')
-rw-r--r--testsuites/psxtests/psxtimer01/psxtimer.c6
-rw-r--r--testsuites/psxtests/psxtimer01/psxtimer01.scn71
2 files changed, 40 insertions, 37 deletions
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 ***