RTEMS 6.3
Loading...
Searching...
No Matches

Tests timecounter installation related functions and directives of the Clock Manager. More...

Files

file  testsuites/validation/tc-timecounter-install.c

Data Structures

struct  Timecounter

Functions

 T_TEST_CASE (ScoreTimecounterValInstall)

Detailed Description

Tests timecounter installation related functions and directives of the Clock Manager.

This test case performs the following actions:

  • Call the simple timecounter tick service with a zero delta and offset. This will lead to an overflow to zero of the timehand generation. It shall not change the initial clock values.
  • Call the directives to get the initial value of CLOCK_REALTIME and the initial boot time.
    • Check the initial CLOCK_REALTIME in seconds and nanoseconds format.
    • Check that CLOCK_REALTIME is frozen in seconds and nanoseconds format.
    • Check the initial CLOCK_REALTIME in coarse resolution in seconds and nanoseconds format.
    • Check that CLOCK_REALTIME is frozen in coarse resolution in seconds and nanoseconds format.
    • Check the initial CLOCK_REALTIME in binary time format.
    • Check that CLOCK_REALTIME is frozen in binary time format.
    • Check the initial CLOCK_REALTIME in coarse resolution in binary time format.
    • Check that CLOCK_REALTIME is frozen in coarse resolution in binary time format.
    • Check the initial CLOCK_REALTIME in seconds and microseconds format.
    • Check that CLOCK_REALTIME is frozen in seconds and microseconds format.
    • Check the initial CLOCK_REALTIME in coarse resolution in seconds and microseconds format.
    • Check that CLOCK_REALTIME is frozen in coarse resolution in seconds and microseconds format.
    • Check the initial boot time in seconds and nanoseconds format.
    • Check the initial boot time in binary time format.
    • Check the initial boot time in seconds and microseconds format.
  • Call the directives to get the initial value of CLOCK_MONOTONIC and the initial boot time.
    • Check the initial CLOCK_MONOTONIC in seconds and nanoseconds format.
    • Check that CLOCK_MONOTONIC is frozen in seconds and nanoseconds format.
    • Check the initial CLOCK_MONOTONIC in coarse resolution in seconds and nanoseconds format.
    • Check that CLOCK_MONOTONIC is frozen in coarse resolution in seconds and nanoseconds format.
    • Check the initial CLOCK_MONOTONIC in binary time format.
    • Check that CLOCK_MONOTONIC is frozen in binary time format.
    • Check the initial CLOCK_MONOTONIC in coarse resolution in binary time format.
    • Check that CLOCK_MONOTONIC is frozen in coarse resolution in binary time format.
    • Check the initial CLOCK_MONOTONIC in signed binary time format.
    • Check that CLOCK_MONOTONIC is frozen in signed binary time format.
    • Check the initial CLOCK_MONOTONIC in seconds and microseconds format.
    • Check that CLOCK_MONOTONIC is frozen in seconds and microseconds format.
    • Check the initial CLOCK_MONOTONIC in coarse resolution in seconds and microseconds format.
    • Check that CLOCK_MONOTONIC is frozen in coarse resolution in seconds and microseconds format.
  • Install timecounter of different quality levels and frequencies.
    • Install a timecounter with a high quality level and normal frequency. Check that it was installed.
    • Install a timecounter with a high quality level and low frequency. Check that it was not installed.
    • Install a timecounter with a high quality level and high frequency. Check that it was installed.
    • Install a timecounter with a low quality level. Check that it was not installed.
  • Call the directives to get the time in the highest resolution available to the system.
  • Call the directives to get the time in a coarse resolution.
  • Call the directives to get the time in the highest resolution available to the system.
  • Update the oldest timehand after a large time interval.
  • Call the simple timecounter tick service with non-zero delta and offset parameter values so that exactly one second passed.
    • Check that exactly one second passed due to the simple clock tick service.
  • Install a very high quality timecounter with a low frequency to test the NTP support.
    • Let the seconds value of CLOCK_REALTIME not change. Check that the NTP update second handler is not called.
    • Let the seconds value of CLOCK_REALTIME change by one. Check that the NTP update second handler is called exactly once.
    • Let the seconds value of CLOCK_REALTIME change by 200. Check that the NTP update second handler is called exactly 200 times.
    • Let the seconds value of CLOCK_REALTIME change by 201. Check that the NTP update second handler is called exactly twice.
    • Let the seconds value of CLOCK_REALTIME change by one. Check that the NTP update second handler is incremented the CLOCK_REALTIME by one second.
    • Let the seconds value of CLOCK_REALTIME change by one. Check that the NTP update second handler is decremented the CLOCK_REALTIME by one second.
    • Let the seconds value of CLOCK_REALTIME change by one. Check that the NTP update second handler increased the timecounter frequency.
    • Let the seconds value of CLOCK_REALTIME change by one. Check that the NTP update second handler decreased the timecounter frequency.