Upgrade to Cwd 2.17.
Rafael Garcia-Suarez [Wed, 10 Mar 2004 16:16:00 +0000 (16:16 +0000)]
p4raw-id: //depot/perl@22482

ext/Cwd/Changes
ext/Cwd/t/cwd.t
lib/Cwd.pm

index c3158ba..ca9684e 100644 (file)
@@ -1,5 +1,11 @@
 Revision history for Perl extension Cwd.
 
+2.17  Wed Mar 10 07:55:36 CST 2004
+
+ - The change in 2.16 created a testing failure when tested from
+   within a path that contains symlinks (for instance, /tmp ->
+   /private/tmp).
+
 2.16  Sat Mar  6 17:56:31 CST 2004
 
  - For VMS compatibility (and to conform to Cwd's documented
index fbd8133..c2142e9 100644 (file)
@@ -89,9 +89,8 @@ SKIP: {
     }
 }
 
-my $Top_Test_Dir = '_ptrslt_';
-my $Test_Dir     = File::Spec->catdir($Top_Test_Dir, qw/_path_ _to_ _a_ _dir_/);
-my $want = quotemeta File::Spec->rel2abs($Test_Dir);
+my @test_dirs = qw{_ptrslt_ _path_ _to_ _a_ _dir_};
+my $Test_Dir     = File::Spec->catdir(@test_dirs);
 
 mkpath([$Test_Dir], 0, 0777);
 Cwd::chdir $Test_Dir;
@@ -99,11 +98,11 @@ Cwd::chdir $Test_Dir;
 foreach my $func (qw(cwd getcwd fastcwd fastgetcwd)) {
   my $result = eval "$func()";
   is $@, '';
-  like( File::Spec->canonpath($result), qr|$want$|i, "$func()" );
+  dir_ends_with( $result, $Test_Dir, "$func()" );
 }
 
 # Cwd::chdir should also update $ENV{PWD}
-like(File::Spec->canonpath($ENV{PWD}), qr|$want$|i,      'Cwd::chdir() updates $ENV{PWD}');
+dir_ends_with( $ENV{PWD}, $Test_Dir, 'Cwd::chdir() updates $ENV{PWD}' );
 my $updir = File::Spec->updir;
 Cwd::chdir $updir;
 print "#$ENV{PWD}\n";
@@ -116,7 +115,7 @@ print "#$ENV{PWD}\n";
 Cwd::chdir $updir;
 print "#$ENV{PWD}\n";
 
-rmtree([$Top_Test_Dir], 0, 0);
+rmtree($test_dirs[0], 0, 0);
 
 {
   my $check = ($IsVMS   ? qr|\b((?i)t)\]$| :
@@ -139,6 +138,22 @@ SKIP: {
     like($abs_path,      qr|$want$|);
     like($fast_abs_path, qr|$want$|);
 
-    rmtree([$Top_Test_Dir], 0, 0);
+    rmtree($test_dirs[0], 0, 0);
     unlink "linktest";
 }
+
+#############################################
+# These two routines give us sort of a poor-man's cross-platform
+# directory comparison routine.
+
+sub bracketed_form {
+  return join '', map "[$_]", 
+    grep length, File::Spec->splitdir(File::Spec->canonpath( shift() ));
+}
+
+sub dir_ends_with {
+  my ($dir, $expect) = (shift, shift);
+  my $bracketed_expect = quotemeta bracketed_form($expect);
+  like( bracketed_form($dir), qr|$bracketed_expect$|i, (@_ ? shift : ()) );
+}
+
index 283ac74..4d5c71e 100644 (file)
@@ -1,5 +1,5 @@
 package Cwd;
-$VERSION = $VERSION = '2.16';
+$VERSION = $VERSION = '2.17';
 
 =head1 NAME