This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
DragonflyBSD is a BSD too
[perl5.git] / lib / blib.t
index 4e0d3ea..b6df9e8 100644 (file)
@@ -6,10 +6,12 @@ BEGIN {
 }
 
 use strict;
+use File::Spec;
+my($blib, $blib_arch, $blib_lib, @blib_dirs);
 
 sub _cleanup {
-    rmdir foreach reverse qw(blib blib/arch blib/lib);
-    unlink "stderr";
+    rmdir foreach reverse (@_);
+    unlink "stderr" unless $^O eq 'MacOS';
 }
 
 sub _mkdirs {
@@ -20,26 +22,56 @@ sub _mkdirs {
 }
     
 
-BEGIN { _cleanup }
+BEGIN {
+    if ($^O eq 'MacOS')
+    {
+       $MacPerl::Architecture = $MacPerl::Architecture; # shhhhh
+       $blib = ":blib:";
+       $blib_lib = ":blib:lib:";
+       $blib_arch = ":blib:lib:$MacPerl::Architecture:";
+       @blib_dirs = ($blib, $blib_lib, $blib_arch); # order
+    }
+    else
+    {
+       $blib = "blib";
+       $blib_arch = "blib/arch";
+       $blib_lib = "blib/lib";
+       @blib_dirs = ($blib, $blib_arch, $blib_lib);
+    }
+    _cleanup( @blib_dirs );
+}
 
 use Test::More tests => 7;
 
 eval 'use blib;';
 ok( $@ =~ /Cannot find blib/, 'Fails if blib directory not found' );
 
-_mkdirs(qw(blib blib/arch blib/lib));
+_mkdirs( @blib_dirs );
 
 {
-    my $warnings;
+    my $warnings = '';
     local $SIG{__WARN__} = sub { $warnings = join '', @_ };
     use_ok('blib');
-    is( $warnings, '',  'use blib is niiiice and quiet' );
+    is( $warnings, '',  'use blib is nice and quiet' );
 }
 
 is( @INC, 3, '@INC now has 3 elements' );
 is( $INC[2],    '../lib',       'blib added to the front of @INC' );
 
-ok( grep(m|blib/lib$|, @INC[0,1])  == 1,     '  blib/lib in @INC');
-ok( grep(m|blib/arch$|, @INC[0,1]) == 1,     '  blib/arch in @INC');
+if ($^O eq 'VMS') {
+    # Unix syntax is accepted going in but it's not what comes out
+    # So we don't use catdir above
+    $blib_arch = 'blib.arch]';
+    $blib_lib = 'blib.lib]';
+}
+elsif ($^O ne 'MacOS')
+{
+    $blib_arch = File::Spec->catdir("blib","arch");
+    $blib_lib  = File::Spec->catdir("blib","lib");
+}
+
+
+ok( grep(m|\Q$blib_lib\E$|, @INC[0,1])  == 1,     "  $blib_lib in \@INC");
+ok( grep(m|\Q$blib_arch\E$|, @INC[0,1]) == 1,     "  $blib_arch in \@INC");
 
-END { _cleanup(); }
+END { _cleanup( @blib_dirs ); }