_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.wer...@aacmicrotec.com>
---
 testsuites/psxtests/psxtimer01/psxtimer.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/testsuites/psxtests/psxtimer01/psxtimer.c 
b/testsuites/psxtests/psxtimer01/psxtimer.c
index 032e9f8e6c..6ec049ac54 100644
--- a/testsuites/psxtests/psxtimer01/psxtimer.c
+++ b/testsuites/psxtests/psxtimer01/psxtimer.c
@@ -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) {
-- 
2.11.0

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to