1 #!/usr/bin/perl 2 3 use Test; 4 use IO::AIO; 5 6 # this is a lame test, but.... 7 8 BEGIN { plan tests => 12 } 9 10 my %f; 11 ok ((opendir my $dir, "."), 1, "$!"); 12 $f{$_}++ for readdir $dir; 13 14 my %x = %f; 15 16 aio_readdir ".", sub { 17 delete $x{"."}; 18 delete $x{".."}; 19 if ($_[0]) { 20 ok (1); 21 my $ok = 1; 22 $ok &&= delete $x{$_} for @{$_[0]}; 23 ok ($ok); 24 ok (!scalar keys %x); 25 } else { 26 ok (0,1,"$!"); 27 } 28 }; 29 30 IO::AIO::poll; 31 32 %x = %f; 33 34 aio_scandir ".", 0, sub { 35 delete $x{"."}; 36 delete $x{".."}; 37 if (@_) { 38 ok (1); 39 my $ok = 1; 40 $ok &&= delete $x{$_} for (@{$_[0]}, @{$_[1]}); 41 ok ($ok); 42 ok (!keys %x); 43 } else { 44 ok (0,1,"$!"); 45 } 46 }; 47 48 IO::AIO::poll while IO::AIO::nreqs; 49 50 my $entries1; 51 52 aio_readdirx ".", IO::AIO::READDIR_STAT_ORDER, sub { 53 $entries1 = shift; 54 ok (! ! $entries1); 55 }; 56 57 IO::AIO::poll while IO::AIO::nreqs; 58 59 aio_readdirx ".", IO::AIO::READDIR_STAT_ORDER | IO::AIO::READDIR_DENTS, sub { 60 my $entries2 = shift; 61 ok (! ! $entries2); 62 63 ok (!grep $entries2->[$_ - 1][2] > $entries2->[$_][2], 1 .. $#$entries2); 64 65 if ($^O eq "cygwin") { 66 # sigh... 67 $entries1 = [ sort @$entries1 ]; 68 $entries2 = [ sort { $a->[0] cmp $b->[0] } @$entries2 ]; 69 } 70 71 ok ((join "\x00", @$entries1) eq (join "\x00", map $_->[0], @$entries2)); 72 }; 73 74 IO::AIO::poll while IO::AIO::nreqs; 75 76 ok (1);