develooper Front page | perl.perl5.porters | Postings from February 2002

[PATCH] assorted VMS test fix-ups, $Config{prefixexp} revisited

Thread Next
From:
Craig A. Berry
Date:
February 27, 2002 13:32
Subject:
[PATCH] assorted VMS test fix-ups, $Config{prefixexp} revisited
Message ID:
5.1.0.14.2.20020227152131.01ade728@exchi01
These are mostly related to filename case and its preservation (or lack 
thereof).

configure.com  
  $Config{prefixexp} needs a colon at the end so we 
  know it's absolute for use in catdir(), etc.

ext/Cwd/t/cwd.t
vms/ext/filespec.t   
  play nice with both ODS-5 (case preserving) 
  and ODS-2 (non-case-preserving) file systems

lib/ExtUtils/t/Installed.t  
  mark portions TODO because the new() method attempts to derive mixed-case 
  package names from file names, and obviously that ain't gonna work on a 
  non-case-preserving file system.  Is there a better way to get the package 
  name?

--- configure.com;-0    Sat Feb 23 14:17:41 2002
+++ configure.com       Wed Feb 27 13:10:12 2002
@@ -5622,7 +5622,7 @@
 $ WC "pidtype='" + pidtype + "'"
 $ WC "pm_apiversion='" + version + "'"
 $ WC "prefix='" + vms_prefix + "'"
-$ WC "prefixexp='" + vms_prefix + "'"
+$ WC "prefixexp='" + vms_prefix + ":'"
 $ WC "privlib='" + privlib + "'"
 $ WC "privlibexp='" + privlibexp + "'"
 $ WC "procselfexe=' '"
--- ext/Cwd/t/cwd.t;-0  Sat Jan 19 11:11:47 2002
+++ ext/Cwd/t/cwd.t     Wed Feb 27 14:18:01 2002
@@ -65,9 +65,9 @@
 my $want = "t/$Test_Dir";
 if( $IsVMS ) {
     # translate the unixy path to VMSish
-    $want = uc $want;
     $want =~ s|/|\.|g;
     $want .= '\]';
+    $want = '((?i)' . $want . ')';  # might be ODS-2 or ODS-5
 }
 
 mkpath(["$Test_Dir"], 0, 0777);
@@ -94,7 +94,7 @@
 rmtree([$Top_Test_Dir], 0, 0);
 
 if ($IsVMS) {
-    like($ENV{PWD}, qr|\bT\]$|);
+    like($ENV{PWD}, qr|\b((?i)t)\]$|);
 }
 else {
     like($ENV{PWD}, qr|\bt$|);
--- lib/ExtUtils/t/Installed.t;-0       Thu Feb 14 10:16:43 2002
+++ lib/ExtUtils/t/Installed.t  Wed Feb 27 11:14:13 2002
@@ -108,8 +108,12 @@
 
 
 SKIP: {
+    TODO: {
        skip("could not write packlist: $!", 3 ) unless $wrotelist;
 
+       local $TODO = "new() attempts to derive package name from filename"
+           if $^O eq 'VMS';
+
        # avoid warning and death by localizing glob
        local *ExtUtils::Installed::Config;
        my $fake_mod_dir = File::Spec->catdir(cwd(), 'auto', 'FakeMod');
@@ -126,6 +130,7 @@
        isa_ok( $realei->{FakeMod}{packlist}, 'ExtUtils::Packlist' );
        is( $realei->{FakeMod}{version}, '1.1.1', 
                '... should find version in modules' );
+    }
 }
 
 # modules
@@ -169,7 +174,7 @@
 is( scalar @files, 0, '... should find no doc files given wrong dirs' );
 @files = $ei->files('goodmod', 'prog');
 is( scalar @files, 1, '... should find doc file in correct dir' );
-like( $files[0], qr/foobar$/, '... checking file name' );
+like( $files[0], qr/foobar[>\]]?$/, '... checking file name' );
 @files = $ei->files('goodmod');
 is( scalar @files, 2 + $mandirs, '... should find all files with no type specified' );
 my %dirnames = map { lc($_) => dirname($_) } @files;
--- vms/ext/filespec.t;-0       Thu Jan  3 10:50:00 2002
+++ vms/ext/filespec.t  Wed Feb 27 14:26:47 2002
@@ -30,7 +30,7 @@
 # file specifications shwn above are in fact equivalent.
 EOW
 
-is(rmsexpand('[]'),       "\U$ENV{DEFAULT}", 'rmsexpand()') || print $defwarn;
+is(uc(rmsexpand('[]')),   "\U$ENV{DEFAULT}", 'rmsexpand()') || print $defwarn;
 is(rmsexpand('from.here'),"\L$ENV{DEFAULT}from.here") || print $defwarn;
 is(rmsexpand('from'),     "\L$ENV{DEFAULT}from")      || print $defwarn;
 
[end of patch]



Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About