Commit | Line | Data |
a635c943 |
1 | #!./perl -Tw |
2 | |
3 | BEGIN { |
4 | chdir 't' if -d 't'; |
5 | @INC = '../lib'; |
6 | } |
7 | |
8 | use strict; |
91fded41 |
9 | use File::Spec; |
e69a2255 |
10 | my($blib, $blib_arch, $blib_lib, @blib_dirs); |
a635c943 |
11 | |
ca48d8be |
12 | my $Is_VMS = $^O eq 'VMS'; |
13 | my $Is_VMS_mode = 0; |
14 | |
15 | if ($Is_VMS) { |
16 | require VMS::Filespec if $Is_VMS; |
17 | my $vms_unix_rpt; |
18 | |
19 | $Is_VMS_mode = 1; |
20 | if (eval 'require VMS::Feature') { |
21 | $vms_unix_rpt = VMS::Feature::current("filename_unix_report"); |
22 | } else { |
23 | my $unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || ''; |
24 | $vms_unix_rpt = $unix_rpt =~ /^[ET1]/i; |
25 | } |
26 | $Is_VMS_mode = 0 if ($vms_unix_rpt); |
27 | } |
28 | |
29 | |
a635c943 |
30 | sub _cleanup { |
e69a2255 |
31 | rmdir foreach reverse (@_); |
32 | unlink "stderr" unless $^O eq 'MacOS'; |
a635c943 |
33 | } |
34 | |
35 | sub _mkdirs { |
36 | for my $dir (@_) { |
37 | next if -d $dir; |
38 | mkdir $dir or die "Can't mkdir $dir: $!" if ! -d $dir; |
39 | } |
40 | } |
41 | |
42 | |
e69a2255 |
43 | BEGIN { |
44 | if ($^O eq 'MacOS') |
45 | { |
16398b42 |
46 | $MacPerl::Architecture = $MacPerl::Architecture; # shhhhh |
e69a2255 |
47 | $blib = ":blib:"; |
48 | $blib_lib = ":blib:lib:"; |
49 | $blib_arch = ":blib:lib:$MacPerl::Architecture:"; |
50 | @blib_dirs = ($blib, $blib_lib, $blib_arch); # order |
51 | } |
52 | else |
53 | { |
54 | $blib = "blib"; |
55 | $blib_arch = "blib/arch"; |
56 | $blib_lib = "blib/lib"; |
57 | @blib_dirs = ($blib, $blib_arch, $blib_lib); |
58 | } |
59 | _cleanup( @blib_dirs ); |
60 | } |
a635c943 |
61 | |
62 | use Test::More tests => 7; |
63 | |
64 | eval 'use blib;'; |
65 | ok( $@ =~ /Cannot find blib/, 'Fails if blib directory not found' ); |
66 | |
e69a2255 |
67 | _mkdirs( @blib_dirs ); |
a635c943 |
68 | |
69 | { |
4940c443 |
70 | my $warnings = ''; |
a635c943 |
71 | local $SIG{__WARN__} = sub { $warnings = join '', @_ }; |
72 | use_ok('blib'); |
91fded41 |
73 | is( $warnings, '', 'use blib is nice and quiet' ); |
a635c943 |
74 | } |
75 | |
76 | is( @INC, 3, '@INC now has 3 elements' ); |
77 | is( $INC[2], '../lib', 'blib added to the front of @INC' ); |
78 | |
ca48d8be |
79 | if ($Is_VMS_mode) { |
bea1ee5e |
80 | # Unix syntax is accepted going in but it's not what comes out |
91fded41 |
81 | # So we don't use catdir above |
bea1ee5e |
82 | $blib_arch = 'blib.arch]'; |
83 | $blib_lib = 'blib.lib]'; |
84 | } |
91fded41 |
85 | elsif ($^O ne 'MacOS') |
86 | { |
87 | $blib_arch = File::Spec->catdir("blib","arch"); |
88 | $blib_lib = File::Spec->catdir("blib","lib"); |
89 | } |
90 | |
91 | |
92 | ok( grep(m|\Q$blib_lib\E$|, @INC[0,1]) == 1, " $blib_lib in \@INC"); |
93 | ok( grep(m|\Q$blib_arch\E$|, @INC[0,1]) == 1, " $blib_arch in \@INC"); |
a635c943 |
94 | |
e69a2255 |
95 | END { _cleanup( @blib_dirs ); } |