summaryrefslogtreecommitdiff
path: root/t/read_dir.t
blob: d04351fcc6a5a82317ddd2112c71ff44aab297d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/perl -w -I.

use strict ;
use Test::More tests => 9 ;

use File::Slurp ;

# try to honor possible tempdirs

my $test_dir = "read_dir_$$" ;

mkdir( $test_dir, 0700) || die "mkdir $test_dir: $!" ;

my @dir_entries = read_dir( $test_dir );

ok( @dir_entries == 0, 'empty dir' ) ;

@dir_entries = read_dir( $test_dir, keep_dot_dot => 1 ) ;

ok( @dir_entries == 2, 'empty dir with . ..' ) ;

@dir_entries = read_dir( $test_dir, { keep_dot_dot => 1 } ) ;

ok( @dir_entries == 2, 'empty dir with . .. - args ref' ) ;

write_file( "$test_dir/x", "foo\n" ) ;

@dir_entries = read_dir( $test_dir ) ;

ok( @dir_entries == 1, 'dir with 1 file' ) ;

ok( $dir_entries[0] eq 'x', 'dir with file x' ) ;

my $file_cnt = 23 ;

my @expected_entries = sort( 'x', 1 .. $file_cnt ) ;

for ( 1 .. $file_cnt ) {

	write_file( "$test_dir/$_", "foo\n" ) ;
}

@dir_entries = read_dir( $test_dir ) ;
@dir_entries = sort @dir_entries ;

ok( eq_array( \@dir_entries, \@expected_entries ),
	"dir with $file_cnt files" ) ;

my $dir_entries_ref = read_dir( $test_dir ) ;
@{$dir_entries_ref} = sort @{$dir_entries_ref} ;

ok( eq_array( $dir_entries_ref, \@expected_entries ),
	"dir in array ref" ) ;

my @prefixed_entries = read_dir( $test_dir, {prefix => 1} ) ;
@prefixed_entries = sort @prefixed_entries ;
ok( eq_array( \@prefixed_entries, [map "$test_dir/$_", @dir_entries] ),
	'prefix option' ) ;

# clean up

unlink map "$test_dir/$_", @dir_entries ;
rmdir( $test_dir ) || die "rmdir $test_dir: $!";
ok( 1, 'cleanup' ) ;

__END__