Integrate macperl patch #16868.
[p5sagit/p5-mst-13.2.git] / lib / blib.t
1 #!./perl -Tw
2
3 BEGIN {
4     chdir 't' if -d 't';
5     @INC = '../lib';
6 }
7
8 use strict;
9 my($blib, $blib_arch, $blib_lib, @blib_dirs);
10
11 sub _cleanup {
12     rmdir foreach reverse (@_);
13     unlink "stderr" unless $^O eq 'MacOS';
14 }
15
16 sub _mkdirs {
17     for my $dir (@_) {
18         next if -d $dir;
19         mkdir $dir or die "Can't mkdir $dir: $!" if ! -d $dir;
20     }
21 }
22     
23
24 BEGIN {
25     if ($^O eq 'MacOS')
26     {
27         $blib = ":blib:";
28         $blib_lib = ":blib:lib:";
29         $blib_arch = ":blib:lib:$MacPerl::Architecture:";
30         @blib_dirs = ($blib, $blib_lib, $blib_arch); # order
31     }
32     else
33     {
34         $blib = "blib";
35         $blib_arch = "blib/arch";
36         $blib_lib = "blib/lib";
37         @blib_dirs = ($blib, $blib_arch, $blib_lib);
38     }
39     _cleanup( @blib_dirs );
40 }
41
42 use Test::More tests => 7;
43
44 eval 'use blib;';
45 ok( $@ =~ /Cannot find blib/, 'Fails if blib directory not found' );
46
47 _mkdirs( @blib_dirs );
48
49 {
50     my $warnings = '';
51     local $SIG{__WARN__} = sub { $warnings = join '', @_ };
52     use_ok('blib');
53     is( $warnings, '',  'use blib is niiiice and quiet' );
54 }
55
56 is( @INC, 3, '@INC now has 3 elements' );
57 is( $INC[2],    '../lib',       'blib added to the front of @INC' );
58
59 ok( grep(m|$blib_lib$|, @INC[0,1])  == 1,     '  blib/lib in @INC');
60 ok( grep(m|$blib_arch$|, @INC[0,1]) == 1,     '  blib/arch in @INC');
61
62 END { _cleanup( @blib_dirs ); }