1f08c3bdfSopenharmony_ci<assertions>
2f08c3bdfSopenharmony_ci  <assertion id="1" tag="pt:CS" files="">
3f08c3bdfSopenharmony_ci   The clock time can be set to 0, a large number, Y2K critical dates,
4f08c3bdfSopenharmony_ci   and times around daylight savings.
5f08c3bdfSopenharmony_ci  </assertion>
6f08c3bdfSopenharmony_ci  <assertion id="2" tag="pt:CS" files="">
7f08c3bdfSopenharmony_ci   clock_gettime() with CLOCK_REALTIME is monotonically increasing in both
8f08c3bdfSopenharmony_ci   seconds and nanoseconds.
9f08c3bdfSopenharmony_ci  </assertion>
10f08c3bdfSopenharmony_ci  <assertion id="3" tag="pt:CS" files="">
11f08c3bdfSopenharmony_ci   Clock time for clocks:
12f08c3bdfSopenharmony_ci     CLOCK_REALTIME
13f08c3bdfSopenharmony_ci     CLOCK_MONOTONIC
14f08c3bdfSopenharmony_ci   is equivalent to some known good clock over time, even if the time
15f08c3bdfSopenharmony_ci   is reset.
16f08c3bdfSopenharmony_ci  </assertion>
17f08c3bdfSopenharmony_ci  <assertion id="4" tag="pt:CS" files="">
18f08c3bdfSopenharmony_ci   Having a call to clock_settime() interrupted with a signal does not
19f08c3bdfSopenharmony_ci   affect the setting of the clock.
20f08c3bdfSopenharmony_ci  </assertion>
21f08c3bdfSopenharmony_ci  <assertion id="5" tag="pt:CS" files="">
22f08c3bdfSopenharmony_ci   Killing a process setting the clock does not affect the clock time in
23f08c3bdfSopenharmony_ci   an unpredictable fashion.
24f08c3bdfSopenharmony_ci  </assertion>
25f08c3bdfSopenharmony_ci  <assertion id="6" tag="pt:CS" files="">
26f08c3bdfSopenharmony_ci   If clocktime is set as a timer expires, the time is still set correctly.
27f08c3bdfSopenharmony_ci  </assertion>
28f08c3bdfSopenharmony_ci  <assertion id="7" tag="pt:CS" files="clocks/twopsetclock.c">
29f08c3bdfSopenharmony_ci   Two processes can attempt to set the clock at (nearly) the same time and
30f08c3bdfSopenharmony_ci   both sets will succeed, with the later one taking effect.
31f08c3bdfSopenharmony_ci  </assertion>
32f08c3bdfSopenharmony_ci  <assertion id="8" tag="pt:TMR" files="">
33f08c3bdfSopenharmony_ci   The a timer can be set to expire at 0, a large number, Y2K critical dates,
34f08c3bdfSopenharmony_ci   and times around daylight savings with no unpredictable results.
35f08c3bdfSopenharmony_ci  </assertion>
36f08c3bdfSopenharmony_ci  <assertion id="9" tag="pt:TMR" files="">
37f08c3bdfSopenharmony_ci   Timers (relative and absolute) expire at the POSIX-defined times when the
38f08c3bdfSopenharmony_ci   clock changes.
39f08c3bdfSopenharmony_ci  </assertion>
40f08c3bdfSopenharmony_ci  <assertion id="10" tag="pt:TMR" files="">
41f08c3bdfSopenharmony_ci   Multiple relative timers set up in a particular order (possibly with a small
42f08c3bdfSopenharmony_ci   delay between each) expire in the order set up.  [Not required by POSIX,
43f08c3bdfSopenharmony_ci   though, so this should not fail if it does not work.]
44f08c3bdfSopenharmony_ci  </assertion>
45f08c3bdfSopenharmony_ci  <assertion id="11" tag="pt:TMR" files="">
46f08c3bdfSopenharmony_ci   All possible events can be sent on timer expirations.
47f08c3bdfSopenharmony_ci  </assertion>
48f08c3bdfSopenharmony_ci  <assertion id="12" tag="pt:TMR" files="timers/twoevtimers.c">
49f08c3bdfSopenharmony_ci   Two timers in one process can expire at the same time, but with
50f08c3bdfSopenharmony_ci   different events.
51f08c3bdfSopenharmony_ci  </assertion>
52f08c3bdfSopenharmony_ci  <assertion id="13" tag="pt:TMR" files="timers/twoptimers.c">
53f08c3bdfSopenharmony_ci   Timers in two different processes which are set to expire at the same time
54f08c3bdfSopenharmony_ci   are able to expire at the same time.
55f08c3bdfSopenharmony_ci  </assertion>
56f08c3bdfSopenharmony_ci  <assertion id="14" tag="pt:TMR" files="">
57f08c3bdfSopenharmony_ci   A repeating timer set to expire at time X and a non-repeating set to
58f08c3bdfSopenharmony_ci   expire at 2X will both expire at the same time at 2X.
59f08c3bdfSopenharmony_ci  </assertion>
60f08c3bdfSopenharmony_ci  <assertion id="15" tag="pt:TMR" files="">
61f08c3bdfSopenharmony_ci   A repeating timer will expire at the correct time for at least ten
62f08c3bdfSopenharmony_ci   expirations.
63f08c3bdfSopenharmony_ci  </assertion>
64f08c3bdfSopenharmony_ci  <assertion id="16" tag="pt:TMR" files="">
65f08c3bdfSopenharmony_ci   For multiple repeating timers with different intervals blocked, the
66f08c3bdfSopenharmony_ci   overrun count for each is correct.
67f08c3bdfSopenharmony_ci  </assertion>
68f08c3bdfSopenharmony_ci  <assertion id="17" tag="pt:TMR" files="">
69f08c3bdfSopenharmony_ci   Overrun count and timer_gettime() return correct values when
70f08c3bdfSopenharmony_ci   SIGEV_NONE is used in ev.sigev_notify.
71f08c3bdfSopenharmony_ci  </assertion>
72f08c3bdfSopenharmony_ci  <assertion id="18" tag="pt:TMR" files="">
73f08c3bdfSopenharmony_ci   Calling timer_getoverrun() as an overrun is happening returns the
74f08c3bdfSopenharmony_ci   correct value.
75f08c3bdfSopenharmony_ci  </assertion>
76f08c3bdfSopenharmony_ci  <assertion id="19" tag="pt:TMR" files="">
77f08c3bdfSopenharmony_ci   A process can sleep until 0, a large number, Y2K critical dates,
78f08c3bdfSopenharmony_ci   and times around daylight savings with no unpredictable results.
79f08c3bdfSopenharmony_ci  </assertion>
80f08c3bdfSopenharmony_ci  <assertion id="20" tag="pt:TMR" files="">
81f08c3bdfSopenharmony_ci   Sleeps (relative and absolute) expire at the POSIX-defined times when the
82f08c3bdfSopenharmony_ci   clock changes.
83f08c3bdfSopenharmony_ci  </assertion>
84f08c3bdfSopenharmony_ci  <assertion id="21" tag="pt:TMR" files="">
85f08c3bdfSopenharmony_ci   Sleeps in two different processes which are set to end at the same time
86f08c3bdfSopenharmony_ci   are able to end at the same time.
87f08c3bdfSopenharmony_ci  </assertion>
88f08c3bdfSopenharmony_ci</assertions>
89