blib.t revision 1.1.1.1
1#!./perl -Tw
2
3BEGIN {
4    chdir 't' if -d 't';
5    @INC = '../lib';
6}
7
8use strict;
9use File::Spec;
10my($blib, $blib_arch, $blib_lib, @blib_dirs);
11
12sub _cleanup {
13    rmdir foreach reverse (@_);
14    unlink "stderr" unless $^O eq 'MacOS';
15}
16
17sub _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
25BEGIN {
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
44use Test::More tests => 7;
45
46eval 'use blib;';
47ok( $@ =~ /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
58is( @INC, 3, '@INC now has 3 elements' );
59is( $INC[2],    '../lib',       'blib added to the front of @INC' );
60
61if ($^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}
67elsif ($^O ne 'MacOS')
68{
69    $blib_arch = File::Spec->catdir("blib","arch");
70    $blib_lib  = File::Spec->catdir("blib","lib");
71}
72
73
74ok( grep(m|\Q$blib_lib\E$|, @INC[0,1])  == 1,     "  $blib_lib in \@INC");
75ok( grep(m|\Q$blib_arch\E$|, @INC[0,1]) == 1,     "  $blib_arch in \@INC");
76
77END { _cleanup( @blib_dirs ); }
78