diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2012-01-04 20:11:39 -0800 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2012-01-06 22:40:31 -0800 |
| commit | 25e81e34eaaa1953ca301e95314c1ed01e773a9d (patch) | |
| tree | c8da5e9478d874344dc2c836d2c88dd2b1ea045b /src/test/stdtest/task.rs | |
| parent | 98f5109cde838e66d629bf05c804ad1ca9b06c42 (diff) | |
| download | rust-25e81e34eaaa1953ca301e95314c1ed01e773a9d.tar.gz rust-25e81e34eaaa1953ca301e95314c1ed01e773a9d.zip | |
rewrite task tests
Diffstat (limited to 'src/test/stdtest/task.rs')
| -rw-r--r-- | src/test/stdtest/task.rs | 52 |
1 files changed, 17 insertions, 35 deletions
diff --git a/src/test/stdtest/task.rs b/src/test/stdtest/task.rs index 3a08606f47e..500189a0bc6 100644 --- a/src/test/stdtest/task.rs +++ b/src/test/stdtest/task.rs @@ -11,33 +11,29 @@ fn test_sleep() { task::sleep(1000000u); } #[test] #[ignore(cfg(target_os = "win32"))] fn test_unsupervise() { - fn f(&&_i: ()) { task::unsupervise(); fail; } - task::spawn((), f); + fn f() { task::unsupervise(); fail; } + task::spawn {|| f}; } #[test] fn test_lib_spawn() { - fn foo(&&_i: ()) { #error("Hello, World!"); } - task::spawn((), foo); + fn foo() { #error("Hello, World!"); } + task::spawn {|| foo}; } #[test] fn test_lib_spawn2() { - fn foo(&&x: int) { assert (x == 42); } - task::spawn(42, foo); + fn foo(x: int) { assert (x == 42); } + task::spawn {|| foo(42);}; } #[test] fn test_join_chan() { - fn winner(&&_i: ()) { } + fn winner() { } - let p = comm::port(); - task::spawn_notify((), winner, comm::chan(p)); - let s = comm::recv(p); - #error("received task status message"); - log(error, s); - alt s { - task::exit(_, task::tr_success.) {/* yay! */ } + let t = task::spawn_joinable {|| winner();}; + alt task::join(t) { + task::tr_success. {/* yay! */ } _ { fail "invalid task status received" } } } @@ -46,32 +42,18 @@ fn test_join_chan() { #[test] #[ignore(cfg(target_os = "win32"))] fn test_join_chan_fail() { - fn failer(&&_i: ()) { task::unsupervise(); fail } + fn failer() { task::unsupervise(); fail } - let p = comm::port(); - task::spawn_notify((), failer, comm::chan(p)); - let s = comm::recv(p); - #error("received task status message"); - log(error, s); - alt s { - task::exit(_, task::tr_failure.) {/* yay! */ } + let t = task::spawn_joinable {|| failer();}; + alt task::join(t) { + task::tr_failure. {/* yay! */ } _ { fail "invalid task status received" } } } #[test] -fn test_join_convenient() { - fn winner(&&_i: ()) { } - let handle = task::spawn_joinable((), winner); - assert (task::tr_success == task::join(handle)); -} - -#[test] -#[ignore] fn spawn_polymorphic() { - // FIXME #1038: Can't spawn palymorphic functions - /*fn foo<T: send>(x: T) { log(error, x); } - - task::spawn(true, foo); - task::spawn(42, foo);*/ + fn foo<send T>(x: T) { log(error, x); } + task::spawn {|| foo(true);} + task::spawn {|| foo(42);} } |
