update CPANPLUS::Dist::Build to 0.06_01
Jos I. Boumans [Tue, 22 May 2007 14:45:19 +0000 (16:45 +0200)]
From: "Jos I. Boumans" <kane@dwim.org>
Message-Id: <208F4537-CCF8-401B-9F97-EF1902EA2FB6@dwim.org>

p4raw-id: //depot/perl@31266

lib/CPANPLUS/Dist/Build.pm
lib/CPANPLUS/Dist/Build/t/01_CPANPLUS-Dist-Build-Constants.t
lib/CPANPLUS/Dist/Build/t/02_CPANPLUS-Dist-Build.t
lib/CPANPLUS/Dist/Build/t/inc/conf.pl
lib/CPANPLUS/Dist/Build/t/src/noxs/Foo-Bar-0.01.tar.gz.packed
lib/CPANPLUS/Dist/Build/t/src/xs/Foo-Bar-0.01.tar.gz.packed

index 4d4aec0..bd08e39 100644 (file)
@@ -29,7 +29,7 @@ use Locale::Maketext::Simple    Class => 'CPANPLUS', Style => 'gettext';
 
 local $Params::Check::VERBOSE = 1;
 
-$VERSION = '0.06';
+$VERSION = '0.06_01';
 
 =pod
 
@@ -535,10 +535,13 @@ sub create {
                 ### send success on force...
                 $test_fail++;
 
-                unless($force) {
-                    $dist->status->test(0);
-                    $fail++; last RUN;
+                if( !$force and !$cb->_callbacks->proceed_on_test_failure->(
+                                      $self, $@ ) 
+                ) {
+                    $dist->status->test(0);                 
+                    $fail++; last RUN;     
                 }
+                
             } else {
                 $dist->status->test(1);
             }
index c7cb348..a1be084 100644 (file)
@@ -1,3 +1,11 @@
+### make sure we can find our conf.pl file
+BEGIN { 
+    use FindBin; 
+    require "$FindBin::Bin/inc/conf.pl";
+}
+
+
+
 BEGIN { chdir 't' if -d 't' };
 
 ### this is to make devel::cover happy ###
index 9417cec..92da256 100644 (file)
@@ -194,7 +194,12 @@ while( my($path,$need_cc) = each %Map ) {
     ### since we're die'ing in the Build.PL, do a local *STDERR,
     ### so we dont spam the result through the test -- this is expected
     ### behaviour after all.
-    my $rv = do { local *STDERR; $clone->prepare( force => 1 ) };
+    ### also quell the warning for print() on unopened fh...
+    my $rv = do { 
+                local $^W;
+                local *STDERR; 
+                $clone->prepare( force => 1 ) 
+            };
     ok( !$rv,                   '   $mod->prepare failed' );
 
     my $re = quotemeta( $build_pl );
@@ -209,7 +214,8 @@ while( my($path,$need_cc) = each %Map ) {
 sub find_module {
   my $module = shift;
 
-  # Don't add the .pm yet, in case it's a packlist or something like ExtUtils::xsubpp.
+  ### Don't add the .pm yet, in case it's a packlist or something 
+  ### like ExtUtils::xsubpp.
   my $file = File::Spec->catfile( split m/::/, $module );
   my $candidate;
   foreach (@INC) {
index 1892922..ff77c61 100644 (file)
@@ -62,6 +62,55 @@ use File::Basename  qw[basename];
     $Locale::Maketext::Lexicon::VERSION = 0;
 }
 
+### clean up files for PERLCORE mostly -- make clean isn't invoked
+### there... otoh, we should clean up after ourselves anyway.
+END {
+    ### chdir to our own test dir, so we know all files are relative 
+    ### to this point, no matter whether run from perlcore tests or
+    ### regular CPAN installs
+    chdir "$FindBin::Bin" if -d "$FindBin::Bin";
+
+    ### XXX hardcoded
+    _clean_test_dir( [qw|dummy-perl dummy-cpanplus| ] );
+}
+
+### whenever we start a new script, we want to clean out our
+### old files from the test '.cpanplus' dir..
+sub _clean_test_dir {
+    my $dirs    = shift || [];
+    my $verbose = shift || 0;
+
+    for my $dir ( @$dirs ) {
+
+        ### if it's not there, don't bother
+        next unless -d $dir;
+
+        my $dh;
+        opendir $dh, $dir or die "Could not open basedir '$dir': $!";
+        while( my $file = readdir $dh ) { 
+            next if $file =~ /^\./;  # skip dot files
+            
+            my $path = File::Spec->catfile( $dir, $file );
+            
+            ### directory, rmtree it
+            if( -d $path ) {
+                print "Deleting directory '$path'\n" if $verbose;
+                eval { rmtree( $path ) };
+                warn "Could not delete '$path' while cleaning up '$dir'" if $@;
+           
+            ### regular file
+            } else {
+                print "Deleting file '$path'\n" if $verbose;
+                1 while unlink $path;
+            }            
+        }       
+    
+        close $dh;
+    }
+    
+    return 1;
+}
+
 1;
 
 __END__
index e978261..cc2951c 100644 (file)
@@ -10,7 +10,7 @@ To recreate it use the following command:
 
      uupacktool.pl -p lib/CPANPLUS/Dist/Build/t/src/noxs/Foo-Bar-0.01.tar.gz lib/CPANPLUS/Dist/Build/t/src/noxs/Foo-Bar-0.01.tar.gz.packed
 
-Created at Fri May  4 14:00:53 2007
+Created at Tue May 22 13:44:00 2007
 #########################################################################
 __UU__
 M'XL("-<X34(``T9O;RU"87(M,"XP,2YT87(`[9E;;]HP%,=Y]J<X+9722@-R
index 52e09e2..bdb76d2 100644 (file)
@@ -10,7 +10,7 @@ To recreate it use the following command:
 
      uupacktool.pl -p lib/CPANPLUS/Dist/Build/t/src/xs/Foo-Bar-0.01.tar.gz lib/CPANPLUS/Dist/Build/t/src/xs/Foo-Bar-0.01.tar.gz.packed
 
-Created at Fri May  4 14:00:54 2007
+Created at Tue May 22 13:44:00 2007
 #########################################################################
 __UU__
 M'XL("-\X34(``T9O;RU"87(M,"XP,2YT87(`[5K_3QI)%/=7YZ]XU39H(BN[