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