[PATCH v3] Test needed for timer_create with CLOCK_MONOTONIC

zack leung zakthertemsdev at gmail.com
Fri Aug 6 17:55:30 UTC 2021


How do i report the findings of the  psx and  tests?


Thanks
Zack

On Thu, 5 Aug 2021 at 19:23, Gedare Bloom <gedare at rtems.org> wrote:

> On Thu, Aug 5, 2021 at 12:36 PM Zacchaeus Leung
> <zakthertemsdev at gmail.com> wrote:
> >
> > the timer_create() method can use CLOCK_MONOTONIC but there was  no test
> for this
> >
> The commit message needs to be improved, because this patch is doing
> more than adding a "test", it is implementing the functionality to
> create a CLOCK_MONOTONIC timer and to gettime() on it.
>
> > Closes #3888
> https://devel.rtems.org/ticket/3888  ??
>
> >
> > ---
>
> [...]
>
> > +
> > + if ( rtems_timespec_less_than( &now, &expire ) ) {
> > +      rtems_timespec_subtract( &now, &expire, &result );
> > +    } else {
> > +      result.tv_nsec = 0;
> > +      result.tv_sec  = 0;
> > +    }
> The indentation level is wrong in this block.
>
> > +
> > +  value->it_value = result;
> > +  value->it_interval = ptimer->timer_data.it_interval;
> > +
> > +  _POSIX_Timer_Release( cpu, &lock_context );
> > +  return 0;
> > +}
> > \ No newline at end of file
> > diff --git a/testsuites/psxtests/psxtimer02/psxtimer.c
> b/testsuites/psxtests/psxtimer02/psxtimer.c
> > index 9f79d33c42..1a79369efb 100644
> > --- a/testsuites/psxtests/psxtimer02/psxtimer.c
> > +++ b/testsuites/psxtests/psxtimer02/psxtimer.c
> > @@ -126,6 +126,32 @@ void *POSIX_Init (
> >    puts( "timer_delete - bad id - EINVAL" );
> >    status = timer_delete( timer );
> >    fatal_posix_service_status_errno( status, EINVAL, "bad id" );
> > +
> > +  puts( "timer_create (monotonic) - bad timer id pointer - EINVAL" );
> > +  status = timer_create( CLOCK_MONOTONIC, &event, NULL );
> > +  fatal_posix_service_status_errno( status, EINVAL, "bad timer id" );
> > +
> > +  puts( "timer_create (monotonic) - OK" );
> > +  status = timer_create( CLOCK_MONOTONIC, NULL, &timer );
> > +  posix_service_failed( status, "timer_create OK" );
> > +
> > +  puts( "timer_create (monotonic) - too many - EAGAIN" );
> > +  status = timer_create( CLOCK_MONOTONIC, NULL, &timer1 );
> > +  fatal_posix_service_status_errno( status, EAGAIN, "too many" );
> > +
> > +  clock_gettime( CLOCK_MONOTONIC, &now );
> > +  itimer.it_value = now;
> > +  itimer.it_value.tv_sec = itimer.it_value.tv_sec - 1;
> > +  puts( "timer_settime (monotonic) - bad itimer value - previous time -
> EINVAL" );
> > +  status = timer_settime( timer, TIMER_ABSTIME, &itimer, NULL );
> > +  fatal_posix_service_status_errno( status, EINVAL, "bad itimer value
> #3" );
> > +
> > +  clock_gettime( CLOCK_MONOTONIC, &now );
> > +  itimer.it_value = now;
> > +  itimer.it_value.tv_sec = itimer.it_value.tv_sec + 1;
> > +  puts( "timer_settime (monotonic) - bad id - EINVAL" );
> > +  status = timer_settime( timer1, TIMER_ABSTIME, &itimer, NULL );
> > +  fatal_posix_service_status_errno( status, EINVAL, "bad id" );
> >
>
> Please provide updated psxtimer02.scn and report the results for
> running rtems-test for at least the sparc/erc32 with sis including the
> sptests and psxtests. If you need help how to run rtems-test, consult
> the documentation and ask questions.
> https://docs.rtems.org/branches/master/user/testing/index.html
>
> >    TEST_END();
> >    rtems_test_exit (0);
> > --
> > 2.32.0
> >
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org
> > http://lists.rtems.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20210806/f30cf2df/attachment-0001.html>


More information about the devel mailing list