1 |
$|=1; |
2 |
print "1..18\n"; |
3 |
|
4 |
use Coro; |
5 |
use Coro::Cont; |
6 |
|
7 |
$test = 1; |
8 |
|
9 |
sub a1 : Coro { |
10 |
my $cont = csub { |
11 |
cede; |
12 |
yield $_*2; |
13 |
cede; |
14 |
yield $_*3; |
15 |
}; |
16 |
my @arr = map &$cont, 1,2,3,4,5,6; |
17 |
for(2,6,6,12,10,18) { |
18 |
print (((shift @arr == $_) ? "ok " : "not ok "), $test++, "\n"); |
19 |
} |
20 |
$done++; |
21 |
cede while 1; |
22 |
} |
23 |
|
24 |
sub a2 : Coro { |
25 |
my $cont = csub { |
26 |
cede; |
27 |
yield $_*20; |
28 |
cede; |
29 |
yield $_*30; |
30 |
}; |
31 |
my @arr = map &$cont, 1,2,3,4,5,6; |
32 |
for(20,60,60,120,100,180) { |
33 |
print (((shift @arr == $_) ? "ok " : "not ok "), $test++, "\n"); |
34 |
} |
35 |
$done++; |
36 |
cede while 1; |
37 |
} |
38 |
|
39 |
print "ok ", $test++, "\n"; |
40 |
|
41 |
$done = 0; |
42 |
|
43 |
cede while $done < 2; |
44 |
|
45 |
sub cont : Cont { |
46 |
yield 2*shift; |
47 |
yield 3*shift; |
48 |
} |
49 |
|
50 |
print cont(3) == 6 ? "ok " : "not ok ", $test++, "\n"; |
51 |
print cont(4) == 12 ? "ok " : "not ok ", $test++, "\n"; |
52 |
print cont(5) == 10 ? "ok " : "not ok ", $test++, "\n"; |
53 |
print cont(6) == 18 ? "ok " : "not ok ", $test++, "\n"; |
54 |
print cont(7) == 14 ? "ok " : "not ok ", $test++, "\n"; |
55 |
|
56 |
|
57 |
|
58 |
|