Fix and extend error message in posix timer test

_Timespec_Equal_to() does not set errno, hence avoid using perror(),
instead use fprintf() to stderr, and extend the error message to provide
information about what the error is (measured timer value after
re-arming is not equal to the configured interval), and how large of a
difference was measured.

Signed-off-by: Martin Erik Werner <martin.werner@aacmicrotec.com>
This commit is contained in:
Martin Erik Werner
2018-05-15 11:21:55 +02:00
committed by Joel Sherrill
parent 4b3c8b82a9
commit baee0dc5a3

View File

@@ -143,7 +143,12 @@ void * task_a (void *arg)
rtems_test_exit(0);
}
if (! _Timespec_Equal_to( &timerdata.it_value, &my_period )){
perror ("Error in Task A timer_gettime\n");
fprintf(
stderr, "Error in Task A timer_gettime:\n"
" re-armed timer: %" PRIdtime_t ":%ld does not match interval: %" PRIdtime_t ":%ld\n",
timerdata.it_value.tv_sec, timerdata.it_value.tv_nsec,
my_period.tv_sec, my_period.tv_nsec
);
}
clock = time(NULL);
printf("Executing task A with count = %2i %s", params->count, ctime(&clock));
@@ -291,7 +296,12 @@ void * task_c (void *arg)
rtems_test_exit(0);
}
if (! _Timespec_Equal_to( &timerdata.it_value, &my_period) ){
perror ("Error in Task C timer_gettime\n");
fprintf(
stderr, "Error in Task A timer_gettime:\n"
" re-armed timer: %" PRIdtime_t ":%ld does not match interval: %" PRIdtime_t ":%ld\n",
timerdata.it_value.tv_sec, timerdata.it_value.tv_nsec,
my_period.tv_sec, my_period.tv_nsec
);
}
pthread_mutex_lock (&data.mutex);
while (data.updated == FALSE) {