Skip to content

Commit 27972a6

Browse files
committed
Add two tests for sending unique boxes across channels
Issue #409
1 parent 68512f2 commit 27972a6

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

src/test/run-pass/unique-send-2.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
use std;
2+
import std::comm;
3+
import std::task;
4+
import std::uint;
5+
6+
fn child(c: comm::chan<~uint>, i: uint) {
7+
comm::send(c, ~i);
8+
}
9+
10+
fn main() {
11+
let p = comm::port();
12+
let n = 100u;
13+
let expected = 0u;
14+
for each i in uint::range(0u, n) {
15+
let f = bind child(comm::chan(p), i);
16+
task::spawn(f);
17+
expected += i;
18+
}
19+
20+
let actual = 0u;
21+
for each i in uint::range(0u, n) {
22+
let j = comm::recv(p);
23+
actual += *j;
24+
}
25+
26+
assert expected == actual;
27+
}

src/test/run-pass/unique-send.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
use std;
2+
import std::comm;
3+
import std::task;
4+
5+
fn main() {
6+
let p = comm::port();
7+
let c = comm::chan(p);
8+
comm::send(c, ~100);
9+
let v = comm::recv(p);
10+
assert v == ~100;
11+
}

0 commit comments

Comments
 (0)