diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-04-28 14:13:25 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-04-28 14:13:36 -0700 |
| commit | c01d05f18d57c548338eb56f5eaf31ab07fda24b (patch) | |
| tree | ab5ecf71cc4859794fd5476eae9a166277656cc6 /src/libstd/timer.rs | |
| parent | caab57586a6e5e9201c265c47c9dcf886499cb45 (diff) | |
| download | rust-c01d05f18d57c548338eb56f5eaf31ab07fda24b.tar.gz rust-c01d05f18d57c548338eb56f5eaf31ab07fda24b.zip | |
std: Add 2 timer stress tests
Diffstat (limited to 'src/libstd/timer.rs')
| -rw-r--r-- | src/libstd/timer.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/libstd/timer.rs b/src/libstd/timer.rs index 1c646f61d6a..69bcbf2e419 100644 --- a/src/libstd/timer.rs +++ b/src/libstd/timer.rs @@ -142,6 +142,47 @@ mod test { } #[test] + fn test_gl_timer_sleep_stress1() { + iter::repeat(500u) {|| + sleep(1u); + } + } + + #[test] + fn test_gl_timer_sleep_stress2() { + let po = comm::port(); + let ch = comm::chan(po); + + let repeat = 100u; + let spec = { + + [(1u, 100u), + (10u, 10u), + (100u, 2u)] + + }; + + iter::repeat(repeat) {|| + + for spec.each {|spec| + let (times, maxms) = spec; + task::spawn {|| + import rand::*; + let rng = rng(); + iter::repeat(times) {|| + sleep(rng.next() as uint % maxms); + } + comm::send(ch, ()); + } + } + } + + iter::repeat(repeat * spec.len()) {|| + comm::recv(po) + } + } + + #[test] fn test_gl_timer_recv_timeout_before_time_passes() { let expected = rand::rng().gen_str(16u); let test_po = comm::port::<str>(); |
