#!/usr/bin/perl use Test; use IO::AIO; # this is a lame test, but.... BEGIN { plan tests => 12 } my %f; ok ((opendir my $dir, "."), 1, "$!"); $f{$_}++ for readdir $dir; my %x = %f; aio_readdir ".", sub { delete $x{"."}; delete $x{".."}; if ($_[0]) { ok (1); my $ok = 1; $ok &&= delete $x{$_} for @{$_[0]}; ok ($ok); ok (!scalar keys %x); } else { ok (0,1,"$!"); } }; IO::AIO::poll; %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); if ($^O eq "cygwin") { # sigh... $entries1 = [ sort @$entries1 ]; $entries2 = [ sort { $a->[0] cmp $b->[0] } @$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);