1 | BEGIN { $| = 1; print "1..6\n"; } |
1 | BEGIN { $| = 1; print "1..8\n"; } |
2 | END {print "not ok 1\n" unless $loaded;} |
2 | END {print "not ok 1\n" unless $loaded;} |
3 | use Coro; |
3 | use Coro::State; |
4 | $loaded = 1; |
4 | $loaded = 1; |
5 | print "ok 1\n"; |
5 | print "ok 1\n"; |
6 | |
6 | |
7 | my $main = $Coro::main; |
7 | my $main = new Coro::State; |
8 | my $proc = new Coro \&a; |
8 | my $proc = new Coro::State \&a; |
|
|
9 | my $proc2 = new Coro::State \&b; |
9 | |
10 | |
10 | sub a { |
11 | sub a { |
|
|
12 | $/ = 77; |
11 | print "ok 3\n"; |
13 | print "ok 3\n"; |
12 | $main->resume; |
14 | $proc->transfer ($main); |
|
|
15 | print $/ == 77 ? "" : "not ", "ok 5\n"; |
|
|
16 | $proc->transfer ($main); |
13 | print "ok 5\n"; |
17 | print "not ok 6\n"; |
14 | $main; |
18 | die; |
15 | } |
19 | } |
16 | |
20 | |
|
|
21 | sub b { |
|
|
22 | print $/ != 55 ? "not " : "", "ok 7\n"; |
|
|
23 | $proc2->transfer ($main); |
|
|
24 | print "not ok 8\n"; |
|
|
25 | die; |
|
|
26 | } |
|
|
27 | |
|
|
28 | $/ = 55; |
|
|
29 | |
17 | print "ok 2\n"; |
30 | print "ok 2\n"; |
18 | $proc->resume; |
31 | $main->transfer ($proc); |
19 | print "ok 4\n"; |
32 | print $/ != 55 ? "not " : "ok 4\n"; |
20 | $proc->resume; |
33 | $main->transfer ($proc); |
21 | print "ok 6\n"; |
34 | print $/ != 55 ? "not " : "ok 6\n"; |
|
|
35 | $main->transfer ($proc2); |
|
|
36 | print $/ != 55 ? "not " : "ok 8\n"; |
22 | |
37 | |