… | |
… | |
3 | use Test; |
3 | use Test; |
4 | use IO::AIO; |
4 | use IO::AIO; |
5 | |
5 | |
6 | # this is a lame test, but.... |
6 | # this is a lame test, but.... |
7 | |
7 | |
8 | BEGIN { plan tests => 8 } |
8 | BEGIN { plan tests => 12 } |
9 | |
9 | |
10 | my %f; |
10 | my %f; |
11 | ok ((opendir my $dir, "."), 1, "$!"); |
11 | ok ((opendir my $dir, "."), 1, "$!"); |
12 | $f{$_}++ for readdir $dir; |
12 | $f{$_}++ for readdir $dir; |
13 | |
13 | |
… | |
… | |
37 | if (@_) { |
37 | if (@_) { |
38 | ok (1); |
38 | ok (1); |
39 | my $ok = 1; |
39 | my $ok = 1; |
40 | $ok &&= delete $x{$_} for (@{$_[0]}, @{$_[1]}); |
40 | $ok &&= delete $x{$_} for (@{$_[0]}, @{$_[1]}); |
41 | ok ($ok); |
41 | ok ($ok); |
42 | ok (!scalar keys %x); |
42 | ok (!keys %x); |
43 | } else { |
43 | } else { |
44 | ok (0,1,"$!"); |
44 | ok (0,1,"$!"); |
45 | } |
45 | } |
46 | }; |
46 | }; |
47 | |
47 | |
48 | IO::AIO::poll while IO::AIO::nreqs; |
48 | IO::AIO::poll while IO::AIO::nreqs; |
49 | |
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 ((join "\x00", @$entries1) eq (join "\x00", map $_->[0], @$entries2)); |
|
|
64 | |
|
|
65 | ok (!grep $entries2->[$_ - 1][2] > $entries2->[$_][2], 1 .. $#$entries2); |
|
|
66 | }; |
|
|
67 | |
|
|
68 | IO::AIO::poll while IO::AIO::nreqs; |
|
|
69 | |
50 | ok (1); |
70 | ok (1); |
51 | |
71 | |