--- IO-AIO/t/05_readdir.t 2005/08/28 10:21:27 1.1 +++ IO-AIO/t/05_readdir.t 2009/06/07 18:31:18 1.3 @@ -5,21 +5,23 @@ # this is a lame test, but.... -BEGIN { plan tests => 5 } +BEGIN { plan tests => 12 } my %f; ok ((opendir my $dir, "."), 1, "$!"); $f{$_}++ for readdir $dir; +my %x = %f; + aio_readdir ".", sub { - delete $f{"."}; - delete $f{".."}; + delete $x{"."}; + delete $x{".."}; if ($_[0]) { ok (1); my $ok = 1; - $ok &&= delete $f{$_} for @{$_[0]}; + $ok &&= delete $x{$_} for @{$_[0]}; ok ($ok); - ok (!scalar keys %f); + ok (!scalar keys %x); } else { ok (0,1,"$!"); } @@ -27,5 +29,43 @@ IO::AIO::poll; -print "ok 5\n"; +%x = %f; + +aio_scandir ".", 0, sub { + delete $x{"."}; + delete $x{".."}; + if (@_) { + ok (1); + my $ok = 1; + $ok &&= delete $x{$_} for (@{$_[0]}, @{$_[1]}); + ok ($ok); + ok (!keys %x); + } else { + ok (0,1,"$!"); + } +}; + +IO::AIO::poll while IO::AIO::nreqs; + +my $entries1; + +aio_readdirx ".", IO::AIO::READDIR_STAT_ORDER, sub { + $entries1 = shift; + ok (! ! $entries1); +}; + +IO::AIO::poll while IO::AIO::nreqs; + +aio_readdirx ".", IO::AIO::READDIR_STAT_ORDER | IO::AIO::READDIR_DENTS, sub { + my $entries2 = shift; + ok (! ! $entries2); + + ok ((join "\x00", @$entries1) eq (join "\x00", map $_->[0], @$entries2)); + + ok (!grep $entries2->[$_ - 1][2] > $entries2->[$_][2], 1 .. $#$entries2); +}; + +IO::AIO::poll while IO::AIO::nreqs; + +ok (1);