Commit | Line | Data |
1b0fe50a |
1 | use strict; |
2 | use warnings; |
3 | use Test::More tests => 5; |
4 | use File::Temp 'tempdir'; |
6ba49acc |
5 | use Config; |
1b0fe50a |
6 | use local::lib (); |
7 | |
663a8675 |
8 | use lib 't/lib'; use TempDir; |
9 | |
1b0fe50a |
10 | # remember the original value of this, in case we are already running inside a |
11 | # local::lib |
0d174bf6 |
12 | my $orig_llr = $ENV{PERL_LOCAL_LIB_ROOT} || ''; |
5897c236 |
13 | $orig_llr = '' if $orig_llr eq $Config{path_sep}; |
1b0fe50a |
14 | |
663a8675 |
15 | my $dir1 = mk_temp_dir('test_local_lib-XXXXX'); |
16 | my $dir2 = mk_temp_dir('test_local_lib-XXXXX'); |
17 | my $dir3 = mk_temp_dir('test_local_lib-XXXXX'); |
1b0fe50a |
18 | |
19 | ok(!(grep { $dir1 eq $_ } @INC), 'new dir is not already in @INC'); |
6ba49acc |
20 | ok(!(grep { $dir1 eq $_ } split /\Q$Config{path_sep}\E/, ($ENV{PERL5LIB}||'')), 'new dir is not already in PERL5LIB'); |
1b0fe50a |
21 | |
22 | local::lib->import($dir1); |
23 | local::lib->import($dir2); |
24 | |
25 | # we have junk in here now |
6ba49acc |
26 | $ENV{PERL_LOCAL_LIB_ROOT} .= $Config{path_sep} . $dir3; |
1b0fe50a |
27 | |
28 | local::lib->import($dir1); |
29 | |
30 | is( |
31 | $ENV{PERL_LOCAL_LIB_ROOT}, |
b5e3ee38 |
32 | join($Config{path_sep}, (grep { defined $_ and $_ ne '' } $orig_llr, $dir2, $dir1)), |
33 | 'dir1 should have been removed and added back in at the top (PERL_LOCAL_LIB_ROOT was ' . $orig_llr . ')', |
1b0fe50a |
34 | ); |
35 | |
36 | ok((grep { /\Q$dir1\E/ } @INC), 'new dir has been added to @INC'); |
6ba49acc |
37 | ok((grep { /\Q$dir1\E/ } split /\Q$Config{path_sep}\E/, $ENV{PERL5LIB}), 'new dir has been added to PERL5LIB'); |
1b0fe50a |
38 | |