initial commit
[urisagit/Perl-Docs.git] / t / read_dir.t
1 #!/usr/bin/perl -w -I.
2
3 use strict ;
4 use Test::More tests => 7 ;
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
22 write_file( "$test_dir/x", "foo\n" ) ;
23
24 @dir_entries = read_dir( $test_dir ) ;
25
26 ok( @dir_entries == 1, 'dir with 1 file' ) ;
27
28 ok( $dir_entries[0] eq 'x', 'dir with file x' ) ;
29
30 my $file_cnt = 23 ;
31
32 my @expected_entries = sort( 'x', 1 .. $file_cnt ) ;
33
34 for ( 1 .. $file_cnt ) {
35
36         write_file( "$test_dir/$_", "foo\n" ) ;
37 }
38
39 @dir_entries = read_dir( $test_dir ) ;
40 @dir_entries = sort @dir_entries ;
41
42 ok( eq_array( \@dir_entries, \@expected_entries ),
43         "dir with $file_cnt files" ) ;
44
45 my $dir_entries_ref = read_dir( $test_dir ) ;
46 @{$dir_entries_ref} = sort @{$dir_entries_ref} ;
47
48 ok( eq_array( $dir_entries_ref, \@expected_entries ),
49         "dir in array ref" ) ;
50
51 # clean up
52
53 unlink map "$test_dir/$_", @dir_entries ;
54 rmdir( $test_dir ) || die "rmdir $test_dir: $!";
55 ok( 1, 'cleanup' ) ;
56
57 __END__