From: John Malmberg Date: Sun, 4 Jan 2009 19:13:45 +0000 (-0600) Subject: lib/blib.t, lib/h2xs.t patches for VMS X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ca48d8be8832a77b6914b6e892f536b4d0b46f8a;p=p5sagit%2Fp5-mst-13.2.git lib/blib.t, lib/h2xs.t patches for VMS Message-id: <49610A69.3020908@gmail.com> The tests lib/blib.t and lib/h2xs.t need fixes to know when VMS is in the UNIX report mode. --- diff --git a/lib/blib.t b/lib/blib.t index b6df9e8..a959471 100644 --- a/lib/blib.t +++ b/lib/blib.t @@ -9,6 +9,24 @@ use strict; use File::Spec; my($blib, $blib_arch, $blib_lib, @blib_dirs); +my $Is_VMS = $^O eq 'VMS'; +my $Is_VMS_mode = 0; + +if ($Is_VMS) { + require VMS::Filespec if $Is_VMS; + my $vms_unix_rpt; + + $Is_VMS_mode = 1; + if (eval 'require VMS::Feature') { + $vms_unix_rpt = VMS::Feature::current("filename_unix_report"); + } else { + my $unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || ''; + $vms_unix_rpt = $unix_rpt =~ /^[ET1]/i; + } + $Is_VMS_mode = 0 if ($vms_unix_rpt); +} + + sub _cleanup { rmdir foreach reverse (@_); unlink "stderr" unless $^O eq 'MacOS'; @@ -58,7 +76,7 @@ _mkdirs( @blib_dirs ); is( @INC, 3, '@INC now has 3 elements' ); is( $INC[2], '../lib', 'blib added to the front of @INC' ); -if ($^O eq 'VMS') { +if ($Is_VMS_mode) { # Unix syntax is accepted going in but it's not what comes out # So we don't use catdir above $blib_arch = 'blib.arch]'; diff --git a/lib/h2xs.t b/lib/h2xs.t index 380f838..7d037f3 100644 --- a/lib/h2xs.t +++ b/lib/h2xs.t @@ -31,7 +31,28 @@ $ExtUtils::Manifest::Quiet=1; my $up = File::Spec->updir(); my $extracted_program = '../utils/h2xs'; # unix, nt, ... -if ($^O eq 'VMS') { $extracted_program = '[-.utils]h2xs.com'; } + +my $Is_VMS_traildot = 0; +if ($^O eq 'VMS') { + $extracted_program = '[-.utils]h2xs.com'; + + # We have to know if VMS is in UNIX mode. In UNIX mode, trailing dots + # should not be present. There are actually two settings that control this. + + $Is_VMS_traildot = 1; + my $unix_rpt = 0; + my $drop_dot = 0; + if (eval 'require VMS::Feature') { + $unix_rpt = VMS::Feature::current('filename_unix_report'); + $drop_dot = VMS::Feature::current('readdir_dropdotnotype'); + } else { + my $unix_report = $ENV{'DECC$FILENAME_UNIX_REPORT'} || ''; + $unix_rpt = $unix_report =~ /^[ET1]/i; + my $drop_dot_notype = $ENV{'DECC$READDIR_DROPDOTNOTYPE'} || ''; + $drop_dot = $drop_dot_notype =~ /^[ET1]/i; + } + $Is_VMS_traildot = 0 if $drop_dot && unix_rpt; +} if ($^O eq 'MacOS') { $extracted_program = '::utils:h2xs'; } if (!(-e $extracted_program)) { print "1..0 # Skip: $extracted_program was not built\n"; @@ -187,7 +208,9 @@ while (my ($args, $version, $expectation) = splice @tests, 0, 3) { $_ =~ s/$name:t:1.t/$name:t\/1.t/; # is this an h2xs bug? } if ($^O eq 'VMS') { - $_ .= '.' unless $_ =~ m/\./; + if ($Is_VMS_traildot) { + $_ .= '.' unless $_ =~ m/\./; + } $_ = lc($_) unless exists $got{$_}; } ok (-e $_, "check for $_") and delete $got{$_};