ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/t/05_readdir.t
Revision: 1.4
Committed: Sun Jan 10 23:44:03 2010 UTC (14 years, 5 months ago) by root
Content type: application/x-troff
Branch: MAIN
CVS Tags: rel-4_17, rel-4_14, rel-4_15, rel-4_12, rel-4_11, rel-4_18, rel-4_19, rel-4_4, rel-4_5, rel-4_0, rel-4_1, rel-4_2, rel-4_3, rel-3_65, rel-3_71, rel-3_7, rel-3_6, rel-3_9, rel-3_8, rel-3_93, rel-3_92, rel-3_91, rel-4_34, rel-4_31, rel-4_32, rel-4_33
Changes since 1.3: +6 -0 lines
Log Message:
3.6

File Contents

# Content
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 if ($^O eq "cygwin") {
64 # sigh...
65 $entries1 = [ sort @$entries1 ];
66 $entries2 = [ sort { $a->[0] cmp $b->[0] } @$entries2 ];
67 }
68
69 ok ((join "\x00", @$entries1) eq (join "\x00", map $_->[0], @$entries2));
70
71 ok (!grep $entries2->[$_ - 1][2] > $entries2->[$_][2], 1 .. $#$entries2);
72 };
73
74 IO::AIO::poll while IO::AIO::nreqs;
75
76 ok (1);
77