|
Added
Link Here
|
| 1 |
#!/usr/bin/env perl -w |
| 2 |
|
| 3 |
use strict; |
| 4 |
use warnings; |
| 5 |
|
| 6 |
use autodie; |
| 7 |
use BSDPAN::ExtUtils::Packlist; |
| 8 |
use ExtUtils::Packlist; |
| 9 |
use File::Temp; |
| 10 |
use File::Spec; |
| 11 |
use File::Path; |
| 12 |
use Cwd qw(abs_path); |
| 13 |
|
| 14 |
use Test::More; |
| 15 |
|
| 16 |
my $Orig_Cwd = abs_path; |
| 17 |
|
| 18 |
my $get_dir_list = \&BSDPAN::ExtUtils::Packlist::get_dir_list; |
| 19 |
|
| 20 |
my $packlist = ExtUtils::Packlist->new; |
| 21 |
|
| 22 |
|
| 23 |
note "get_dir_list"; { |
| 24 |
my $tempdir = File::Temp->newdir; |
| 25 |
|
| 26 |
my @tempdir = grep { length $_ } File::Spec->splitdir($tempdir); |
| 27 |
my %want; |
| 28 |
for my $depth (0..$#tempdir) { |
| 29 |
$want{File::Spec->catdir("", @tempdir[0..$depth])}++; |
| 30 |
} |
| 31 |
|
| 32 |
is_deeply |
| 33 |
[sort $get_dir_list->($packlist, "$tempdir/.packlist", "$tempdir/lib/perl5/Foo/Bar.pm")], |
| 34 |
[sort keys %want]; |
| 35 |
|
| 36 |
# Now do it again with the lib directory existing |
| 37 |
mkpath "$tempdir/lib/perl5/Foo"; |
| 38 |
|
| 39 |
$want{"$tempdir/lib/perl5/Foo"} = 1; |
| 40 |
$want{"$tempdir/lib/perl5"} = 1; |
| 41 |
$want{"$tempdir/lib"} = 1; |
| 42 |
|
| 43 |
is_deeply |
| 44 |
[sort $get_dir_list->($packlist, "$tempdir/.packlist", "$tempdir/lib/perl5/Foo/Bar.pm")], |
| 45 |
[sort keys %want]; |
| 46 |
|
| 47 |
# Does it ignore bin? |
| 48 |
mkpath "$tempdir/bin"; |
| 49 |
|
| 50 |
is_deeply |
| 51 |
[sort $get_dir_list->( |
| 52 |
$packlist, |
| 53 |
"$tempdir/.packlist", |
| 54 |
"$tempdir/lib/perl5/Foo/Bar.pm", |
| 55 |
"$tempdir/bin/foo", |
| 56 |
)], |
| 57 |
[sort keys %want]; |
| 58 |
} |
| 59 |
|
| 60 |
|
| 61 |
note "With .. and ."; { |
| 62 |
my $tempdir = File::Temp->newdir; |
| 63 |
mkdir "$tempdir/foo"; |
| 64 |
chdir "$tempdir/foo"; |
| 65 |
|
| 66 |
is_deeply |
| 67 |
[sort $get_dir_list->($packlist, "../foo/.packlist")], |
| 68 |
["../foo"]; |
| 69 |
|
| 70 |
chdir $tempdir; |
| 71 |
|
| 72 |
is_deeply |
| 73 |
[sort $get_dir_list->($packlist, "./foo/.packlist")], |
| 74 |
["./foo"]; |
| 75 |
|
| 76 |
chdir $Orig_Cwd; |
| 77 |
} |
| 78 |
|
| 79 |
done_testing; |