nativize() isn't happy with absolute Mac paths
Test::Harness test fixes, attempt #3 :-)
p4raw-link: @16974 on //depot/macperl:
594896ac796bb1aa12d08048b3e095be1cebc16d
p4raw-id: //depot/perl@16989
p4raw-integrated: from //depot/macperl@16987 'copy in'
ext/DynaLoader/DynaLoader_pm.PL (@16929..)
lib/ExtUtils/MM_MacOS.pm (@16938..)
lib/Test/Harness/t/callback.t
lib/Test/Harness/t/strap-analyze.t
lib/Test/Harness/t/test-harness.t lib/lib_pm.PL (@16968..)
my $dir;
if ($Is_MacOS) {
my $path = $_;
- if ($Mac_FS) {
+ if ($Mac_FS && ! -d $path) {
$path = Mac::FileSpec::Unixish::nativize($path);
}
$path .= ":" unless /:$/;
=cut
sub macify {
- # mmm, better ... and this condition should always be satisified,
- # as the module is now distributed with MacPerl, but leave in anyway
- if ($Mac_FS) {
- return Mac::FileSpec::Unixish::nativize($_[0]);
- }
-
my($unix) = @_;
my(@mac);
- $unix =~ s|^\./||;
-
foreach (split(/[ \t\n]+/, $unix)) {
if (m|/|) {
- $_ = ":$_";
- s|/|:|g;
- }
+ if ($Mac_FS) { # should always be true
+ $_ = Mac::FileSpec::Unixish::nativize($_);
+ } else {
+ s|^\./||;
+ s|/|:|g;
+ $_ = ":$_";
+ }
+ }
push(@mac, $_);
}
while( my($test, $expect) = each %samples ) {
local @out = ();
- $strap->analyze_file($^O eq 'macos' ?
+ $strap->analyze_file($^O eq 'MacOS' ?
catfile($SAMPLE_TESTS, $test) :
"$SAMPLE_TESTS/$test");
}
my $strap = Test::Harness::Straps->new;
- my %results = $strap->analyze_file($^O eq 'macos' ?
+ my %results = $strap->analyze_file($^O eq 'MacOS' ?
catfile($SAMPLE_TESTS, $test) :
"$SAMPLE_TESTS/$test");
select NULL; # _run_all_tests() isn't as quiet as it should be.
local $SIG{__WARN__} = sub { $warning .= join '', @_; };
($totals, $failed) =
- Test::Harness::_run_all_tests($^O eq 'macos' ?
+ Test::Harness::_run_all_tests($^O eq 'MacOS' ?
catfile($SAMPLE_TESTS, $test) :
"$SAMPLE_TESTS/$test");
};
is_deeply( {map { $_=>$totals->{$_} } keys %{$expect->{total}}},
$expect->{total},
"$test - totals" );
- is_deeply( {map { $_=>$failed->{$^O eq 'macos' ?
+ is_deeply( {map { $_=>$failed->{$^O eq 'MacOS' ?
catfile($SAMPLE_TESTS, $test) :
"$SAMPLE_TESTS/$test"}{$_} }
keys %{$expect->{failed}}},
sub _nativize {
my($dir) = @_;
- if ($Is_MacOS && $Mac_FS) {
+ if ($Is_MacOS && $Mac_FS && ! -d $dir) {
$dir = Mac::FileSpec::Unixish::nativize($dir);
$dir .= ":" unless $dir =~ /:$/;
}