Author: ericwilhelm
Date: Wed Jul  9 01:22:18 2008
New Revision: 11502

Modified:
   Module-Build/trunk/t/basic.t
   Module-Build/trunk/t/compat.t
   Module-Build/trunk/t/destinations.t
   Module-Build/trunk/t/extend.t
   Module-Build/trunk/t/files.t
   Module-Build/trunk/t/install.t
   Module-Build/trunk/t/lib/DistGen.pm
   Module-Build/trunk/t/lib/MBTest.pm
   Module-Build/trunk/t/manifypods.t
   Module-Build/trunk/t/metadata.t
   Module-Build/trunk/t/metadata2.t
   Module-Build/trunk/t/moduleinfo.t
   Module-Build/trunk/t/new_from_context.t
   Module-Build/trunk/t/notes.t
   Module-Build/trunk/t/par.t
   Module-Build/trunk/t/ppm.t
   Module-Build/trunk/t/runthrough.t
   Module-Build/trunk/t/signature.t
   Module-Build/trunk/t/test_type.t
   Module-Build/trunk/t/test_types.t
   Module-Build/trunk/t/tilde.t
   Module-Build/trunk/t/xs.t

Log:
** David Wheeler noticed that 5.10 on osx gets mad about deleting the
** current directory.  It turns out that most tests were doing this.

t/lib/DistGen.pm - added did_chdir(),
                   automatically chdir_original() in remove(),
                   check for bad cwd after removal
t/lib/MBTest.pm  - return to original $cwd before deleting $tmp
t/*.t            - made all of the tests use chdir_in()


Modified: Module-Build/trunk/t/basic.t
==============================================================================
--- Module-Build/trunk/t/basic.t        (original)
+++ Module-Build/trunk/t/basic.t        Wed Jul  9 01:22:18 2008
@@ -13,7 +13,7 @@
 my $dist = DistGen->new( dir => $tmp );
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 #########################
 
@@ -166,7 +166,7 @@
   $dist->remove;
   $dist = DistGen->new( dir => $tmp );
   $dist->regen;
-  chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+  $dist->chdir_in;
 }
 
 # Test author stuff

Modified: Module-Build/trunk/t/compat.t
==============================================================================
--- Module-Build/trunk/t/compat.t       (original)
+++ Module-Build/trunk/t/compat.t       Wed Jul  9 01:22:18 2008
@@ -38,7 +38,7 @@
 my $dist = DistGen->new( dir => $tmp );
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 #########################

Modified: Module-Build/trunk/t/destinations.t
==============================================================================
--- Module-Build/trunk/t/destinations.t (original)
+++ Module-Build/trunk/t/destinations.t Wed Jul  9 01:22:18 2008
@@ -13,7 +13,7 @@
 my $dist = DistGen->new( dir => $tmp );
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 use Config;

Modified: Module-Build/trunk/t/extend.t
==============================================================================
--- Module-Build/trunk/t/extend.t       (original)
+++ Module-Build/trunk/t/extend.t       Wed Jul  9 01:22:18 2008
@@ -13,7 +13,7 @@
 my $dist = DistGen->new( dir => $tmp );
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 #########################
 

Modified: Module-Build/trunk/t/files.t
==============================================================================
--- Module-Build/trunk/t/files.t        (original)
+++ Module-Build/trunk/t/files.t        Wed Jul  9 01:22:18 2008
@@ -14,7 +14,7 @@
 my $dist = DistGen->new( dir => $tmp );
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 

Modified: Module-Build/trunk/t/install.t
==============================================================================
--- Module-Build/trunk/t/install.t      (original)
+++ Module-Build/trunk/t/install.t      Wed Jul  9 01:22:18 2008
@@ -15,8 +15,7 @@
 use DistGen;
 my $dist = DistGen->new( dir => $tmp );
 $dist->regen;
-
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 #########################
 
@@ -229,7 +228,7 @@
   $dist->remove;
   $dist = DistGen->new( dir => $tmp );
   $dist->regen;
-  chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+  $dist->chdir_in;
 }
 
 sub strip_volume {

Modified: Module-Build/trunk/t/lib/DistGen.pm
==============================================================================
--- Module-Build/trunk/t/lib/DistGen.pm (original)
+++ Module-Build/trunk/t/lib/DistGen.pm Wed Jul  9 01:22:18 2008
@@ -364,7 +364,10 @@
 sub remove {
   my $self = shift;
   croak("invalid usage -- remove()") if(@_);
+  $self->chdir_original if($self->did_chdir);
   File::Path::rmtree( $self->dirname );
+  # might as well check
+  croak("\nthis test should have used chdir_in()") unless(Cwd::getcwd);
 }
 
 sub revert {
@@ -417,7 +420,14 @@
   $self->{original_dir} ||= Cwd::cwd; # only once
   my $dir = $self->dirname;
   chdir($dir) or die "Can't chdir to '$dir': $!";
-} # end subroutine chdir_in definition
+}
+########################################################################
+
+sub did_chdir {
+  my $self = shift;
+
+  return exists($self->{original_dir});
+}
 ########################################################################
 
 sub chdir_original {
@@ -426,7 +436,7 @@
   croak("never called chdir_in()") unless($self->{original_dir});
   my $dir = $self->{original_dir};
   chdir($dir) or die "Can't chdir to '$dir': $!";
-} # end subroutine chdir_original definition
+}
 ########################################################################
 
 1;

Modified: Module-Build/trunk/t/lib/MBTest.pm
==============================================================================
--- Module-Build/trunk/t/lib/MBTest.pm  (original)
+++ Module-Build/trunk/t/lib/MBTest.pm  Wed Jul  9 01:22:18 2008
@@ -69,7 +69,9 @@
   sub tmpdir { $tmp }
   END {
     if(-d $tmp) {
-      File::Path::rmtree($tmp) or warn "cannot clean dir '$tmp'";
+      # Go back to where you came from!
+      chdir $cwd or die "Couldn't chdir to $cwd";
+      File::Path::rmtree($tmp) or diag "cannot clean dir '$tmp'";
     }
   }
 }

Modified: Module-Build/trunk/t/manifypods.t
==============================================================================
--- Module-Build/trunk/t/manifypods.t   (original)
+++ Module-Build/trunk/t/manifypods.t   Wed Jul  9 01:22:18 2008
@@ -57,7 +57,7 @@
 $dist->regen;
 
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 use File::Spec::Functions qw( catdir );
 my $destdir = catdir($cwd, 't', 'install_test' . $$);
@@ -142,7 +142,7 @@
 $dist->remove;
 $dist = DistGen->new( dir => $tmp );
 $dist->regen;
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 my $mb2 = Module::Build->new(

Modified: Module-Build/trunk/t/metadata.t
==============================================================================
--- Module-Build/trunk/t/metadata.t     (original)
+++ Module-Build/trunk/t/metadata.t     Wed Jul  9 01:22:18 2008
@@ -44,7 +44,7 @@
    }
 
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 use Module::Build;
 my $mb = Module::Build->new_from_context;

Modified: Module-Build/trunk/t/metadata2.t
==============================================================================
--- Module-Build/trunk/t/metadata2.t    (original)
+++ Module-Build/trunk/t/metadata2.t    Wed Jul  9 01:22:18 2008
@@ -22,7 +22,7 @@
   my $dist = DistGen->new( dir => $tmp, skip_manifest => 1 );
   $dist->regen;
 
-  chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+  $dist->chdir_in;
 
   ok ! -e 'MANIFEST';
 
@@ -73,7 +73,7 @@
 });
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 # .pm File with pod

Modified: Module-Build/trunk/t/moduleinfo.t
==============================================================================
--- Module-Build/trunk/t/moduleinfo.t   (original)
+++ Module-Build/trunk/t/moduleinfo.t   Wed Jul  9 01:22:18 2008
@@ -15,7 +15,7 @@
 my $dist = DistGen->new( dir => $tmp );
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 #########################
 
@@ -202,7 +202,7 @@
 $dist->remove;
 $dist = DistGen->new( dir => $tmp );
 $dist->regen;
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 # Find each package only once
@@ -260,7 +260,7 @@
 $dist->remove;
 $dist = DistGen->new( dir => $tmp );
 $dist->regen;
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 # parse $VERSION lines scripts for package main

Modified: Module-Build/trunk/t/new_from_context.t
==============================================================================
--- Module-Build/trunk/t/new_from_context.t     (original)
+++ Module-Build/trunk/t/new_from_context.t     Wed Jul  9 01:22:18 2008
@@ -17,7 +17,7 @@
 $dist->add_file("$libdir/Build.PL", 'die');
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 unshift(@INC, $libdir);

Modified: Module-Build/trunk/t/notes.t
==============================================================================
--- Module-Build/trunk/t/notes.t        (original)
+++ Module-Build/trunk/t/notes.t        Wed Jul  9 01:22:18 2008
@@ -13,7 +13,7 @@
 my $dist = DistGen->new( dir => $tmp );
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 ###################################

Modified: Module-Build/trunk/t/par.t
==============================================================================
--- Module-Build/trunk/t/par.t  (original)
+++ Module-Build/trunk/t/par.t  Wed Jul  9 01:22:18 2008
@@ -54,7 +54,7 @@
 });
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 use File::Spec::Functions qw(catdir);
 

Modified: Module-Build/trunk/t/ppm.t
==============================================================================
--- Module-Build/trunk/t/ppm.t  (original)
+++ Module-Build/trunk/t/ppm.t  Wed Jul  9 01:22:18 2008
@@ -57,7 +57,7 @@
 });
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 use File::Spec::Functions qw(catdir);
 

Modified: Module-Build/trunk/t/runthrough.t
==============================================================================
--- Module-Build/trunk/t/runthrough.t   (original)
+++ Module-Build/trunk/t/runthrough.t   Wed Jul  9 01:22:18 2008
@@ -55,7 +55,7 @@
 ---
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 #########################
@@ -217,7 +217,7 @@
   $dist->add_file( 'bin/script.bat', $script_data );
 
   $dist->regen;
-  chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+  $dist->chdir_in;
 
   $mb = Module::Build->new_from_context;
   ok $mb;

Modified: Module-Build/trunk/t/signature.t
==============================================================================
--- Module-Build/trunk/t/signature.t    (original)
+++ Module-Build/trunk/t/signature.t    Wed Jul  9 01:22:18 2008
@@ -31,7 +31,7 @@
 });
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 #########################
 
@@ -46,7 +46,7 @@
   
   # Make sure the signature actually verifies
   ok Module::Signature::verify() == Module::Signature::SIGNATURE_OK();
-  chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+  $dist->chdir_in;
 }
 
 {
@@ -80,7 +80,7 @@
 eval { $mb->dispatch('realclean') };
 is $@, '';
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 {
     local @ARGV = '--sign=1';

Modified: Module-Build/trunk/t/test_type.t
==============================================================================
--- Module-Build/trunk/t/test_type.t    (original)
+++ Module-Build/trunk/t/test_type.t    Wed Jul  9 01:22:18 2008
@@ -23,7 +23,7 @@
 
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 #########################
 

Modified: Module-Build/trunk/t/test_types.t
==============================================================================
--- Module-Build/trunk/t/test_types.t   (original)
+++ Module-Build/trunk/t/test_types.t   Wed Jul  9 01:22:18 2008
@@ -34,9 +34,7 @@
 ---
 
 $dist->regen;
-
-chdir($dist->dirname) or die "Can't chdir to '@{[$dist->dirname]}': $!";
-
+$dist->chdir_in;
 #########################
 
 my $mb = Module::Build->subclass(
@@ -116,8 +114,7 @@
 ok 1;
 ---
 $dist->regen;
-
-chdir($dist->dirname) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 my $mb = Module::Build->subclass(
    code => q#

Modified: Module-Build/trunk/t/tilde.t
==============================================================================
--- Module-Build/trunk/t/tilde.t        (original)
+++ Module-Build/trunk/t/tilde.t        Wed Jul  9 01:22:18 2008
@@ -15,7 +15,7 @@
 my $dist = DistGen->new( dir => $tmp );
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 sub run_sample {

Modified: Module-Build/trunk/t/xs.t
==============================================================================
--- Module-Build/trunk/t/xs.t   (original)
+++ Module-Build/trunk/t/xs.t   Wed Jul  9 01:22:18 2008
@@ -29,7 +29,7 @@
 my $dist = DistGen->new( dir => $tmp, xs => 1 );
 $dist->regen;
 
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 my $mb = Module::Build->new_from_context;
 
 
@@ -112,7 +112,7 @@
 $dist = DistGen->new( name => 'Simple::With::Deep::Name',
                      dir => $tmp, xs => 1 );
 $dist->regen;
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 $mb = Module::Build->new_from_context;
 is $@, '';
@@ -205,7 +205,7 @@
 ---
 
 $dist->regen;
-chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
+$dist->chdir_in;
 
 
 $mb = Module::Build->new_from_context;

Reply via email to