Branch data Line data Source code
1 : :
2 : : #include "gwrl/event.h"
3 : :
4 : 1 : int main(int argc, char ** argv) {
5 : 1 : int64_t ms1 = 1345223184123;
6 : 1 : struct timeval tv1;
7 : 1 : struct timeval tv2;
8 : 1 : struct timespec ts1;
9 : 1 : struct timespec ts2;
10 : 1 : struct timespec ts3;
11 : :
12 : 1 : gwtm_ms_to_timeval(ms1,&tv1);
13 : 1 : assert(tv1.tv_sec == 1345223184);
14 [ - + ]: 1 : assert(tv1.tv_usec == 123000);
15 : :
16 : 1 : gwtm_timeval_to_ms(&tv1,&ms1);
17 [ - + ]: 1 : assert(ms1 == 1345223184123);
18 : :
19 : 1 : ms1 = 10;
20 : 1 : tv1.tv_sec = 0;
21 : 1 : tv1.tv_usec = 0;
22 : 1 : gwtm_timeval_to_ms(&tv1,&ms1);
23 [ - + ]: 1 : assert(ms1 == 0);
24 : :
25 : 1 : ms1 = 10;
26 : 1 : ts1.tv_sec = 0;
27 : 1 : ts1.tv_nsec = 0;
28 : 1 : gwtm_timespec_to_ms(&ts1,&ms1);
29 [ - + ]: 1 : assert(ms1 == 0);
30 : :
31 : 1 : gwtm_gettimeofday_timespec(&ts1);
32 : 1 : memcpy(&ts2,&ts1,sizeof(ts2));
33 : :
34 : 1 : gwtm_timespec_to_ms(&ts1,&ms1);
35 [ - + ]: 1 : assert(ms1 >= (ts1.tv_sec*1000));
36 [ - + ]: 1 : assert(ms1 < ((int64_t)(ts1.tv_sec+1)*1000));
37 : :
38 : 1 : gwtm_ms_to_timespec(ms1,&ts1);
39 [ - + ]: 1 : assert(ts1.tv_sec == ts2.tv_sec);
40 [ - + ]: 1 : assert(ts2.tv_nsec >= ts1.tv_nsec);
41 [ - + ]: 1 : assert(ts2.tv_nsec < (ts1.tv_nsec+1000000));
42 : :
43 : 1 : gettimeofday(&tv1,NULL);
44 : 1 : memcpy(&tv2,&tv1,sizeof(tv2));
45 : 1 : gwtm_add_ms_to_timeval(2000,&tv2);
46 : 1 : gwtm_add_ms_to_timeval(0,&tv2);
47 [ - + ]: 1 : assert(tv2.tv_sec == (tv1.tv_sec+2));
48 : :
49 : 1 : gwtm_gettimeofday_timespec(&ts1);
50 : 1 : memcpy(&ts2,&ts1,sizeof(ts2));
51 : 1 : gwtm_add_ms_to_timespec(2000,&ts2);
52 [ - + ]: 1 : assert(ts2.tv_sec == (ts1.tv_sec+2));
53 : :
54 : 1 : gwtm_gettimeofday_timespec(&ts1);
55 : 1 : sleep(.2);
56 : 1 : gwtm_gettimeofday_timespec(&ts2);
57 [ - + ]: 1 : assert((gwtm_timespec_cmp(&ts1,&ts2) == &ts1));
58 : :
59 : 1 : gwtm_gettimeofday_timespec(&ts1);
60 : 1 : gwtm_timespec_to_timeval(&ts1,&tv1);
61 [ - + ]: 1 : assert(tv1.tv_sec == ts1.tv_sec);
62 [ - + ]: 1 : assert(tv1.tv_usec == ((long)ts1.tv_nsec)/1000);
63 : :
64 : 1 : gettimeofday(&tv1,0);
65 : 1 : gwtm_timeval_to_timespec(&tv1,&ts1);
66 [ - + ]: 1 : assert(tv1.tv_sec == ts1.tv_sec);
67 : : //assert(ts2.tv_nsec == (tv1.tv_usec*1000));
68 : :
69 : 1 : gwtm_gettimeofday_timespec(&ts1);
70 : 1 : sleep(.2);
71 : 1 : gwtm_gettimeofday_timespec(&ts2);
72 [ - + ]: 1 : assert( gwtm_timespec_copy_if_smaller(&ts2,&ts1) == false);
73 : 1 : gwtm_timespec_copy_if_smaller(&ts1,&ts2);
74 : :
75 [ - + ]: 1 : assert(ts1.tv_sec == ts2.tv_sec);
76 [ - + ]: 1 : assert(ts1.tv_nsec == ts2.tv_nsec);
77 : :
78 : 1 : gwtm_gettimeofday_timespec(&ts1);
79 : 1 : sleep(.2);
80 : 1 : gwtm_gettimeofday_timespec(&ts2);
81 : 1 : gwtm_timespec_sub_into(&ts1,&ts2,&ts3);
82 [ - + ]: 1 : assert(gwtm_timespec_is_expired(&ts3));
83 : :
84 : 1 : return 0;
85 : : }
|