Commit | Line | Data |
635c7876 |
1 | #!/usr/bin/perl -w -I. |
2 | |
3 | use strict ; |
7e284d1c |
4 | use Test::More tests => 9 ; |
635c7876 |
5 | |
6 | use File::Slurp ; |
7 | |
8 | # try to honor possible tempdirs |
9 | |
10 | my $test_dir = "read_dir_$$" ; |
11 | |
12 | mkdir( $test_dir, 0700) || die "mkdir $test_dir: $!" ; |
13 | |
14 | my @dir_entries = read_dir( $test_dir ); |
15 | |
16 | ok( @dir_entries == 0, 'empty dir' ) ; |
17 | |
18 | @dir_entries = read_dir( $test_dir, keep_dot_dot => 1 ) ; |
19 | |
20 | ok( @dir_entries == 2, 'empty dir with . ..' ) ; |
21 | |
12444d55 |
22 | @dir_entries = read_dir( $test_dir, { keep_dot_dot => 1 } ) ; |
23 | |
24 | ok( @dir_entries == 2, 'empty dir with . .. - args ref' ) ; |
25 | |
635c7876 |
26 | write_file( "$test_dir/x", "foo\n" ) ; |
27 | |
28 | @dir_entries = read_dir( $test_dir ) ; |
29 | |
30 | ok( @dir_entries == 1, 'dir with 1 file' ) ; |
31 | |
32 | ok( $dir_entries[0] eq 'x', 'dir with file x' ) ; |
33 | |
34 | my $file_cnt = 23 ; |
35 | |
36 | my @expected_entries = sort( 'x', 1 .. $file_cnt ) ; |
37 | |
38 | for ( 1 .. $file_cnt ) { |
39 | |
40 | write_file( "$test_dir/$_", "foo\n" ) ; |
41 | } |
42 | |
43 | @dir_entries = read_dir( $test_dir ) ; |
44 | @dir_entries = sort @dir_entries ; |
45 | |
46 | ok( eq_array( \@dir_entries, \@expected_entries ), |
47 | "dir with $file_cnt files" ) ; |
48 | |
49 | my $dir_entries_ref = read_dir( $test_dir ) ; |
50 | @{$dir_entries_ref} = sort @{$dir_entries_ref} ; |
51 | |
52 | ok( eq_array( $dir_entries_ref, \@expected_entries ), |
53 | "dir in array ref" ) ; |
54 | |
7e284d1c |
55 | my @prefixed_entries = read_dir( $test_dir, {prefix => 1} ) ; |
56 | @prefixed_entries = sort @prefixed_entries ; |
57 | ok( eq_array( \@prefixed_entries, [map "$test_dir/$_", @dir_entries] ), |
58 | 'prefix option' ) ; |
59 | |
635c7876 |
60 | # clean up |
61 | |
62 | unlink map "$test_dir/$_", @dir_entries ; |
63 | rmdir( $test_dir ) || die "rmdir $test_dir: $!"; |
64 | ok( 1, 'cleanup' ) ; |
65 | |
66 | __END__ |