ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/t/handle/02_write.t
Revision: 1.1
Committed: Sun Apr 27 16:56:17 2008 UTC (16 years, 2 months ago) by elmex
Content type: application/x-troff
Branch: MAIN
Log Message:
added IO::AnyEvent as AnyEvent::Handle and AnyEvent::Socket, including tests

File Contents

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