Test for clock_nanosleep with CLOCK_MONOTONIC (# 3890)

Joel Sherrill joel at rtems.org
Thu Apr 9 17:06:39 UTC 2020


On Thu, Apr 9, 2020 at 11:56 AM Utkarsh Rai <utkarsh.rai60 at gmail.com> wrote:

> Thank you, under psxtests/psxhdrs/time we have a test for clock_nanosleep
> for CLOCK_REALTIME, would it be a good idea to add test for CLOCK_MONOTONIC
> under the same test, or should I add a different test using RTEMS Test
> framework?
>

psxhdr tests are NOT functionality tests. They only test that the method
interface is prototyped as required by POSIX. For example, the following
says you should only have to include <time.h> and then make any call to
clock_nanosleep():

https://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_nanosleep.html


That's what psxhdr tests verify. It would make sense to add a second
clock_nanosleep psxhdr test which uses the CLOCK_MONOTONIC enumeration.

You will need to add a functional test which is focused on ensuring using
clock_nanosleep() with CLOCK_MONOTONIC works as expected. For example, does
it delay the correct minimum length of time based on
clock_gettime(CLOCK_MONOTONIC)? If you change CLOCK_REALTIME, does it not
have any impact on the delay period of a CLOCK_MONOTONIC nanosleep call?

The functional test should cover the code in clock_nanosleep that is
related to CLOCK_MONOTONIC and not tested when you delay using
CLOCK_REALTIME.

--joel

>
> On Thu, Apr 9, 2020 at 6:43 PM Sebastian Huber <
> sebastian.huber at embedded-brains.de> wrote:
>
>>
>> On 09/04/2020 15:04, Joel Sherrill wrote:
>>
>> On Thu, Apr 9, 2020, 7:43 AM Sebastian Huber <
>> sebastian.huber at embedded-brains.de> wrote:
>>
>>> On 09/04/2020 14:40, Joel Sherrill wrote:
>>>
>>> On Thu, Apr 9, 2020, 7:28 AM Utkarsh Rai <utkarsh.rai60 at gmail.com>
>>> wrote:
>>>
>>>> Hi,
>>>> I am willing to add tests for clock_nanosleep with CLOCK_MONOTONIC.
>>>> What is the standard way of adding test for an already present  API but
>>>> with different configuration? For eg. should I add  'psxtmclocknanosleep04/
>>>> 05/ 06' in the testsuite?
>>>>
>>>
>>> Yes. That is the pattern.
>>>
>>> We should try to reduce the count of test programs since on boards with
>>> a long reboot time, more tests programs means much more test time (compared
>>> to the new test cases alone).
>>>
>>
>> And there is the competing factor that you end up with test executables
>> that are overly complex, do not have clean environments for many of the
>> test cases, and are too large to fit on many target boards.
>>
>> The RTEMS Test framework has checks to ensure that the environment is
>> sane before a new test case is executed. It decouples the test cases from
>> the runner. This could be used to group test cases to test suites depending
>> on the target memory size.
>>
>>
>> I know you have seen how long the list is of tests that you can't run on
>> many boards.  That's a bad quality attribute
>>
>> I don't think that tests for clock_nanosleep() will result in big
>> executables. The executable size is mostly defined by the feature to be
>> tested.
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200409/7fbf3a95/attachment.html>


More information about the devel mailing list