ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent-Fork/t/04_tofrom.t
Revision: 1.3
Committed: Fri Apr 19 12:57:00 2013 UTC (11 years, 1 month ago) by root
Content type: application/x-troff
Branch: MAIN
CVS Tags: rel-1_1, rel-1_0, rel-1_3, rel-1_2, rel-1_32, rel-1_31, HEAD
Changes since 1.2: +0 -1 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 BEGIN { $| = 1; print "1..18\n"; }
2
3 BEGIN {
4 $ENV{PERL_ANYEVENT_MODEL} = "Perl"; # work around bugs in win32 perls
5 }
6
7 use AnyEvent::Fork;
8
9 print "ok 1\n";
10
11 my $proc = new AnyEvent::Fork; print "ok 2\n";
12 my $to1 = new AnyEvent::Fork; print "ok 3\n";
13 my $to2 = new AnyEvent::Fork; print "ok 4\n";
14
15 $to1->eval ("1");
16
17 print "ok 5\n";
18
19 my $fh1 = do { $to1->to_fh (my $cv = AE::cv); $cv->recv }; print "ok 6\n";
20 my $fh2 = do { $to2->to_fh (my $cv = AE::cv); $cv->recv }; print "ok 7\n";
21
22 undef $to1;
23 undef $to2;
24
25 print $proc ? "" : "not ", "ok 8\n";
26
27 use AnyEvent::Util;
28
29 print +(my ($r1, $w1) = AnyEvent::Util::portable_pipe) ? "" : "not ", "ok 9\n";
30 print +(my ($r2, $w2) = AnyEvent::Util::portable_pipe) ? "" : "not ", "ok 10\n";
31
32 $proc->send_fh ($fh1); undef $fh1; $proc->send_fh ($w1); undef $w1; print "ok 11\n";
33 $proc->send_fh ($fh2); undef $fh2; $proc->send_fh ($w2); undef $w2; print "ok 12\n";
34
35 $proc->eval ('
36 use AnyEvent;
37 use AnyEvent::Fork;
38
39 my $to1 = new_from_fh AnyEvent::Fork $arg[0]; $to1->send_fh ($arg[1]); $to1->eval ($_[0]);
40 my $to2 = new_from_fh AnyEvent::Fork $arg[2]; $to2->send_fh ($arg[3]); $to2->eval ($_[1]);
41
42 $to1->to_fh (my $cv1 = AE::cv); $cv1->recv;
43 $to2->to_fh (my $cv2 = AE::cv); $cv2->recv;
44 ','
45 syswrite $arg[0], "172";
46 ','
47 syswrite $arg[0], "174";
48 ');
49
50 print "ok 13\n";
51
52 do { $proc->to_fh (my $cv = AE::cv); $cv->recv };
53
54 print "ok 14\n";
55
56 undef $proc;
57
58 print "ok 15\n";
59
60 $r1 = <$r1>;
61 print $r1 eq "172" ? "" : "not ", "ok 16 # $r1\n";
62
63 $r2 = <$r2>;
64 print $r2 eq "174" ? "" : "not ", "ok 17 # $r2\n";
65
66 print "ok 18\n";
67