@@ -45,3 +45,50 @@ in seconds since an unspecified epoch.
45
45
fn precise_time_s ( ) -> float {
46
46
ret ( precise_time_ns ( ) as float ) / 1000000000. ;
47
47
}
48
+
49
+ #[ cfg( test) ]
50
+ mod tests {
51
+ import task;
52
+
53
+ #[ test]
54
+ fn test_get_time ( ) {
55
+ const some_recent_date: u32 = 1325376000u32 ; // 2012-01-01T00:00:00Z
56
+ const some_future_date: u32 = 1577836800u32 ; // 2020-01-01T00:00:00Z
57
+
58
+ let tv1 = get_time ( ) ;
59
+ log ( debug, "tv1=" + uint:: str ( tv1. sec as uint ) + " sec + "
60
+ + uint:: str ( tv1. usec as uint ) + " usec" ) ;
61
+
62
+ assert tv1. sec > some_recent_date;
63
+ assert tv1. usec < 1000000u32 ;
64
+
65
+ let tv2 = get_time ( ) ;
66
+ log ( debug, "tv2=" + uint:: str ( tv2. sec as uint ) + " sec + "
67
+ + uint:: str ( tv2. usec as uint ) + " usec" ) ;
68
+
69
+ assert tv2. sec >= tv1. sec ;
70
+ assert tv2. sec < some_future_date;
71
+ assert tv2. usec < 1000000u32 ;
72
+ if tv2. sec == tv1. sec {
73
+ assert tv2. usec >= tv1. usec ;
74
+ }
75
+ }
76
+
77
+ #[ test]
78
+ fn test_precise_time ( ) {
79
+ let s0 = precise_time_s ( ) ;
80
+ let ns1 = precise_time_ns ( ) ;
81
+
82
+ log ( debug, "s0=" + float:: to_str ( s0, 9 u) + " sec" ) ;
83
+ assert s0 > 0. ;
84
+ let ns0 = ( s0 * 1000000000. ) as u64 ;
85
+ log ( debug, "ns0=" + u64:: str ( ns0) + " ns" ) ;
86
+
87
+ log ( debug, "ns1=" + u64:: str ( ns1) + " ns" ) ;
88
+ assert ns1 >= ns0;
89
+
90
+ let ns2 = precise_time_ns ( ) ;
91
+ log ( debug, "ns2=" + u64:: str ( ns2) + " ns" ) ;
92
+ assert ns2 >= ns1;
93
+ }
94
+ }
0 commit comments