ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/t/handle/02_write.t
Revision: 1.2
Committed: Sun Apr 27 19:08:38 2008 UTC (16 years, 2 months ago) by root
Content type: application/x-troff
Branch: MAIN
CVS Tags: rel-3_41, rel-3_4, rel-3_3
Changes since 1.1: +2 -0 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 elmex 1.1 #!perl
2 root 1.2
3 elmex 1.1 use strict;
4 root 1.2 use AnyEvent::Impl::Perl;
5 elmex 1.1 use AnyEvent::Handle;
6     use Test::More tests => 2;
7     use Socket;
8    
9     my $cv = AnyEvent->condvar;
10    
11     socketpair my $rd, my $wr, AF_UNIX, SOCK_STREAM, PF_UNSPEC;
12    
13     my $rd_ae = AnyEvent::Handle->new (fh => $rd);
14    
15     my $dat = '';
16     my $write_cb_called = 0;
17    
18     $rd_ae->read (5132, sub {
19     my ($rd_ae, $data) = @_;
20     $dat = substr $data, 0, 2;
21     $dat .= substr $data, -5;
22     $rd_ae->read (1, sub { $cv->broadcast });
23     });
24    
25     my $wr_ae = AnyEvent::Handle->new (fh => $wr);
26    
27     $wr_ae->write ("A" x 5000);
28     $wr_ae->write (("X" x 130), sub { $write_cb_called++; });
29     $wr_ae->write ("Y", sub { $write_cb_called++; });
30     $wr_ae->write ("Z");
31     $wr_ae->write (sub { $write_cb_called++; });
32     $wr_ae->write ("A" x 5000);
33     $wr_ae->write (sub { $write_cb_called++ });
34    
35     $cv->wait;
36    
37     is ($dat, "AAXXXYZ", 'lines were read and written correctly');
38     is ($write_cb_called, 4, 'write callbacks called correctly');