Skip to content

Commit b73bc30

Browse files
committed
std: Add tests for time module
Tested on OSX and Windows.
1 parent 105b5f0 commit b73bc30

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

src/libstd/time.rs

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,50 @@ in seconds since an unspecified epoch.
4545
fn precise_time_s() -> float {
4646
ret (precise_time_ns() as float) / 1000000000.;
4747
}
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, 9u) + " 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

Comments
 (0)