about summary refs log tree commit diff
path: root/src/test/stdtest/task.rs
blob: 634903a34d6c943cb80d128052ec5fb0f9f47c97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use std;
import std::task;

#[test]
fn test_sleep() { task::sleep(1000000u); }

#[test]
fn test_unsupervise() {
    fn f() { task::unsupervise(); fail; }
    spawn f();
}

#[test]
fn test_join() {
    fn winner() { }

    let wintask = spawn winner();

    assert (task::join(wintask) == task::tr_success);

    fn failer() { task::unsupervise(); fail; }

    let failtask = spawn failer();

    assert (task::join(failtask) == task::tr_failure);
}

#[test]
fn test_send_recv() {
    let p = port[int]();
    let c = chan(p);
    task::send(c, 10);
    assert (task::recv(p) == 10);
}