This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Integrate macperl change #16875.
[perl5.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         $MacPerl::Architecture = $MacPerl::Architecture; # shhhhh
28         $blib = ":blib:";
29         $blib_lib = ":blib:lib:";
30         $blib_arch = ":blib:lib:$MacPerl::Architecture:";
31         @blib_dirs = ($blib, $blib_lib, $blib_arch); # order
32     }
33     else
34     {
35         $blib = "blib";
36         $blib_arch = "blib/arch";
37         $blib_lib = "blib/lib";
38         @blib_dirs = ($blib, $blib_arch, $blib_lib);
39     }
40     _cleanup( @blib_dirs );
41 }
42
43 use Test::More tests => 7;
44
45 eval 'use blib;';
46 ok( $@ =~ /Cannot find blib/, 'Fails if blib directory not found' );
47
48 _mkdirs( @blib_dirs );
49
50 {
51     my $warnings = '';
52     local $SIG{__WARN__} = sub { $warnings = join '', @_ };
53     use_ok('blib');
54     is( $warnings, '',  'use blib is niiiice and quiet' );
55 }
56
57 is( @INC, 3, '@INC now has 3 elements' );
58 is( $INC[2],    '../lib',       'blib added to the front of @INC' );
59
60 ok( grep(m|$blib_lib$|, @INC[0,1])  == 1,     '  blib/lib in @INC');
61 ok( grep(m|$blib_arch$|, @INC[0,1]) == 1,     '  blib/arch in @INC');
62
63 END { _cleanup( @blib_dirs ); }