1#!./perl 2 3BEGIN { 4 unless(grep /blib/, @INC) { 5 chdir 't' if -d 't'; 6 @INC = '../lib'; 7 } 8} 9 10if ($^O eq 'mpeix') { 11 print "1..0 # Skip: broken on MPE/iX\n"; 12 exit 0; 13} 14 15select(STDERR); $| = 1; 16select(STDOUT); $| = 1; 17 18print "1..10\n"; 19 20use IO::Handle; 21use IO::Poll qw(/POLL/); 22 23my $poll = new IO::Poll; 24 25my $stdout = \*STDOUT; 26my $dupout = IO::Handle->new_from_fd(fileno($stdout),"w"); 27 28$poll->mask($stdout => POLLOUT); 29 30print "not " 31 unless $poll->mask($stdout) == POLLOUT; 32print "ok 1\n"; 33 34$poll->mask($dupout => POLLPRI); 35 36print "not " 37 unless $poll->mask($dupout) == POLLPRI; 38print "ok 2\n"; 39 40$poll->poll(0.1); 41 42if ($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'VMS' || $^O eq 'beos') { 43print "ok 3 # skipped, doesn't work on non-socket fds\n"; 44print "ok 4 # skipped, doesn't work on non-socket fds\n"; 45} 46else { 47print "not " 48 unless $poll->events($stdout) == POLLOUT; 49print "ok 3\n"; 50 51print "not " 52 if $poll->events($dupout); 53print "ok 4\n"; 54} 55 56my @h = $poll->handles; 57print "not " 58 unless @h == 2; 59print "ok 5\n"; 60 61$poll->remove($stdout); 62 63@h = $poll->handles; 64 65print "not " 66 unless @h == 1; 67print "ok 6\n"; 68 69print "not " 70 if $poll->mask($stdout); 71print "ok 7\n"; 72 73$poll->poll(0.1); 74 75print "not " 76 if $poll->events($stdout); 77print "ok 8\n"; 78 79$poll->remove($dupout); 80print "not " 81 if $poll->handles; 82print "ok 9\n"; 83 84my $stdin = \*STDIN; 85$poll->mask($stdin => POLLIN); 86$poll->remove($stdin); 87close STDIN; 88print "not " 89 if $poll->poll(0.1); 90print "ok 10\n"; 91