]> git.lizzy.rs Git - rust.git/blob - src/test/stdtest/task.rs
7945aaed7447829b59487a465dd2c36b616e6117
[rust.git] / src / test / stdtest / task.rs
1 import core::*;
2
3 use std;
4 import task;
5 import comm;
6
7 #[test]
8 fn test_sleep() { task::sleep(1000000u); }
9
10 // FIXME: Leaks on windows
11 #[test]
12 #[ignore(cfg(target_os = "win32"))]
13 fn test_unsupervise() {
14     fn f() { task::unsupervise(); fail; }
15     task::spawn {|| f();};
16 }
17
18 #[test]
19 fn test_lib_spawn() {
20     fn foo() { #error("Hello, World!"); }
21     task::spawn {|| foo();};
22 }
23
24 #[test]
25 fn test_lib_spawn2() {
26     fn foo(x: int) { assert (x == 42); }
27     task::spawn {|| foo(42);};
28 }
29
30 #[test]
31 fn test_join_chan() {
32     fn winner() { }
33
34     let t = task::spawn_joinable {|| winner();};
35     alt task::join(t) {
36       task::tr_success. {/* yay! */ }
37       _ { fail "invalid task status received" }
38     }
39 }
40
41 // FIXME: Leaks on windows
42 #[test]
43 #[ignore(cfg(target_os = "win32"))]
44 fn test_join_chan_fail() {
45     fn failer() { task::unsupervise(); fail }
46
47     let t = task::spawn_joinable {|| failer();};
48     alt task::join(t) {
49       task::tr_failure. {/* yay! */ }
50       _ { fail "invalid task status received" }
51     }
52 }
53
54 #[test]
55 fn spawn_polymorphic() {
56     fn foo<send T>(x: T) { log(error, x); }
57     task::spawn {|| foo(true);};
58     task::spawn {|| foo(42);};
59 }