[PATCH v3] Test needed for timer_create with CLOCK_MONOTONIC

Joel Sherrill joel at rtems.org
Sat Aug 7 17:20:08 UTC 2021


On Sat, Aug 7, 2021 at 10:57 AM Gedare Bloom <gedare at rtems.org> wrote:
>
> On Fri, Aug 6, 2021 at 11:55 AM zack leung <zakthertemsdev at gmail.com> wrote:
> >
> > How do i report the findings of the  psx and  tests?
> >
>
> You can just copy-paste the final part of the log file when you run
> rtems-test. Or you can share the full log file as attachment

I also asked that Zack try to run coverage. I don't mind merging this
before he gets those results. But since he is on sparc, sis can do
coverage, so it is not a far reach. And he can be sure the test covers
the new code added completely.

timergettime.c reports as not having an end of line at the end of the
file. It is missing
a carriage return. Just hit enter and then make sure there isn't a
blank line at the end
of the file.

> >
> > 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
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list