about summary refs log tree commit diff
path: root/src/test/stdtest/task.rs
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2012-01-04 20:11:39 -0800
committerNiko Matsakis <niko@alum.mit.edu>2012-01-06 22:40:31 -0800
commit25e81e34eaaa1953ca301e95314c1ed01e773a9d (patch)
treec8da5e9478d874344dc2c836d2c88dd2b1ea045b /src/test/stdtest/task.rs
parent98f5109cde838e66d629bf05c804ad1ca9b06c42 (diff)
downloadrust-25e81e34eaaa1953ca301e95314c1ed01e773a9d.tar.gz
rust-25e81e34eaaa1953ca301e95314c1ed01e773a9d.zip
rewrite task tests
Diffstat (limited to 'src/test/stdtest/task.rs')
-rw-r--r--src/test/stdtest/task.rs52
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);}
 }