<assertions> <assertion id="1" tag="pt:CS" files=""> The clock time can be set to 0, a large number, Y2K critical dates, and times around daylight savings. </assertion> <assertion id="2" tag="pt:CS" files=""> clock_gettime() with CLOCK_REALTIME is monotonically increasing in both seconds and nanoseconds. </assertion> <assertion id="3" tag="pt:CS" files=""> Clock time for clocks: CLOCK_REALTIME CLOCK_MONOTONIC is equivalent to some known good clock over time, even if the time is reset. </assertion> <assertion id="4" tag="pt:CS" files=""> Having a call to clock_settime() interrupted with a signal does not affect the setting of the clock. </assertion> <assertion id="5" tag="pt:CS" files=""> Killing a process setting the clock does not affect the clock time in an unpredictable fashion. </assertion> <assertion id="6" tag="pt:CS" files=""> If clocktime is set as a timer expires, the time is still set correctly. </assertion> <assertion id="7" tag="pt:CS" files="clocks/twopsetclock.c"> Two processes can attempt to set the clock at (nearly) the same time and both sets will succeed, with the later one taking effect. </assertion> <assertion id="8" tag="pt:TMR" files=""> The a timer can be set to expire at 0, a large number, Y2K critical dates, and times around daylight savings with no unpredictable results. </assertion> <assertion id="9" tag="pt:TMR" files=""> Timers (relative and absolute) expire at the POSIX-defined times when the clock changes. </assertion> <assertion id="10" tag="pt:TMR" files=""> Multiple relative timers set up in a particular order (possibly with a small delay between each) expire in the order set up. [Not required by POSIX, though, so this should not fail if it does not work.] </assertion> <assertion id="11" tag="pt:TMR" files=""> All possible events can be sent on timer expirations. </assertion> <assertion id="12" tag="pt:TMR" files="timers/twoevtimers.c"> Two timers in one process can expire at the same time, but with different events. </assertion> <assertion id="13" tag="pt:TMR" files="timers/twoptimers.c"> Timers in two different processes which are set to expire at the same time are able to expire at the same time. </assertion> <assertion id="14" tag="pt:TMR" files=""> A repeating timer set to expire at time X and a non-repeating set to expire at 2X will both expire at the same time at 2X. </assertion> <assertion id="15" tag="pt:TMR" files=""> A repeating timer will expire at the correct time for at least ten expirations. </assertion> <assertion id="16" tag="pt:TMR" files=""> For multiple repeating timers with different intervals blocked, the overrun count for each is correct. </assertion> <assertion id="17" tag="pt:TMR" files=""> Overrun count and timer_gettime() return correct values when SIGEV_NONE is used in ev.sigev_notify. </assertion> <assertion id="18" tag="pt:TMR" files=""> Calling timer_getoverrun() as an overrun is happening returns the correct value. </assertion> <assertion id="19" tag="pt:TMR" files=""> A process can sleep until 0, a large number, Y2K critical dates, and times around daylight savings with no unpredictable results. </assertion> <assertion id="20" tag="pt:TMR" files=""> Sleeps (relative and absolute) expire at the POSIX-defined times when the clock changes. </assertion> <assertion id="21" tag="pt:TMR" files=""> Sleeps in two different processes which are set to end at the same time are able to end at the same time. </assertion> </assertions>