When running the testsuites/psxtests/psxtimer01/ tests on our or1k
board, I've noticed a common 10ms (one clock tick) time difference when
measuring the re-armed time value in task A and C, which causes the
posixtimer01 test to report failure:

(...)
if (sigwait(&set,&received_sig) == -1) {
  perror ("Error in sigwait\n");
}
if (timer_gettime(timer_id, &timerdata) == -1) {
  perror ("Error in timer_gettime\n");
  rtems_test_exit(0);
}
if (! _Timespec_Equal_to( &timerdata.it_value, &my_period )){
  perror ("Error in Task A timer_gettime\n");
}
(...)

Given that this time value check is disabled in task B:

#if 0
     /*
      *  It is not an error if they are not equal.  A clock tick could occur
      *  and thus they are close but not equal.  Can we test for this?
      */
     if ( !_Timespec_Equal_to( &timerdata.it_value, &my_period) ){
       printf( "NOT EQUAL %d:%d != %d:%d\n",
          timerdata.it_value.tv_sec,
          timerdata.it_value.tv_nsec,
          my_period.tv_sec,
          my_period.tv_nsec
       );
       rtems_test_exit(0);
     }
#endif

does this check still belong as a certain failure in task A and C?

I've made a modification to the failure printout in order to avoid using unset
errno, and to provide information about the time difference, which might be
interesting, if these checks are still valid as certain failures:

Martin Erik Werner (1):
  Fix and extend error message in posix timer test

 testsuites/psxtests/psxtimer01/psxtimer.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

-- 
2.11.0

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

Reply via email to