1 #include <ccan/time/time.h>
2 #include <ccan/time/time.c>
3 #include <ccan/tap/tap.h>
7 struct timeval t1, t2, t3, zero = { 0, 0 };
16 t3 = time_sub(t2, t1);
17 ok1(t3.tv_sec > 0 || t3.tv_usec >= 0);
18 t3 = time_sub(t2, t2);
19 ok1(t3.tv_sec == 0 && t3.tv_usec == 0);
20 t3 = time_sub(t1, t1);
21 ok1(t3.tv_sec == 0 && t3.tv_usec == 0);
26 ok1(!time_eq(t1, t3));
27 ok1(!time_eq(t2, t3));
29 /* Make sure t2 > t1. */
32 t2 = time_add(t2, t3);
34 /* Test time_less and time_greater. */
35 ok1(!time_eq(t1, t2));
36 ok1(!time_greater(t1, t2));
37 ok1(time_less(t1, t2));
38 ok1(time_greater(t2, t1));
39 ok1(!time_less(t2, t1));
42 t2 = time_add(t2, t3);
43 ok1(!time_eq(t1, t2));
44 ok1(!time_greater(t1, t2));
45 ok1(time_less(t1, t2));
46 ok1(time_greater(t2, t1));
47 ok1(!time_less(t2, t1));
49 t3 = time_sub(t2, zero);
51 t3 = time_sub(t2, t2);
52 ok1(time_eq(t3, zero));
54 /* time_from_msec / time_to_msec */
55 t3 = time_from_msec(500);
57 ok1(t3.tv_usec == 500000);
58 ok1(time_to_msec(t3) == 500);
60 t3 = time_from_msec(1000);
63 ok1(time_to_msec(t3) == 1000);
65 t3 = time_from_msec(1500);
67 ok1(t3.tv_usec == 500000);
68 ok1(time_to_msec(t3) == 1500);
71 t3 = time_from_usec(500000);
73 ok1(t3.tv_usec == 500000);
74 ok1(time_to_usec(t3) == 500000);
76 t3 = time_from_usec(1000000);
79 ok1(time_to_usec(t3) == 1000000);
81 t3 = time_from_usec(1500000);
83 ok1(t3.tv_usec == 500000);
84 ok1(time_to_usec(t3) == 1500000);
87 t3 = time_sub(time_sub(t2, time_from_msec(500)), time_from_msec(500));
88 ok1(t3.tv_sec == t2.tv_sec - 1);
89 ok1(t3.tv_usec == t2.tv_usec);
91 /* time_divide and time_multiply */
95 t3 = time_divide(t1, 2);
97 ok1(t3.tv_usec == 50);
99 t3 = time_divide(t1, 100);
101 ok1(t3.tv_usec == 1);
103 t3 = time_multiply(t3, 100);
104 ok1(time_eq(t3, t1));
106 t3 = time_divide(t1, 200);
108 ok1(t3.tv_usec == 500000);
110 return exit_status();