… | |
… | |
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 => 5 } |
8 | BEGIN { plan tests => 8 } |
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 | |
|
|
14 | my %x = %f; |
|
|
15 | |
14 | aio_readdir ".", sub { |
16 | aio_readdir ".", sub { |
15 | delete $f{"."}; |
17 | delete $x{"."}; |
16 | delete $f{".."}; |
18 | delete $x{".."}; |
17 | if ($_[0]) { |
19 | if ($_[0]) { |
18 | ok (1); |
20 | ok (1); |
19 | my $ok = 1; |
21 | my $ok = 1; |
20 | $ok &&= delete $f{$_} for @{$_[0]}; |
22 | $ok &&= delete $x{$_} for @{$_[0]}; |
21 | ok ($ok); |
23 | ok ($ok); |
22 | ok (!scalar keys %f); |
24 | ok (!scalar keys %x); |
23 | } else { |
25 | } else { |
24 | ok (0,1,"$!"); |
26 | ok (0,1,"$!"); |
25 | } |
27 | } |
26 | }; |
28 | }; |
27 | |
29 | |
28 | IO::AIO::poll; |
30 | IO::AIO::poll; |
29 | |
31 | |
30 | print "ok 5\n"; |
32 | %x = %f; |
31 | |
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 (!scalar keys %x); |
|
|
43 | } else { |
|
|
44 | ok (0,1,"$!"); |
|
|
45 | } |
|
|
46 | }; |
|
|
47 | |
|
|
48 | IO::AIO::poll while IO::AIO::nreqs; |
|
|
49 | |
|
|
50 | ok (1); |
|
|
51 | |