[svn:parrot] r37886 - in branches/install_tools: lib/Parrot t/tools/install

jkeenan at svn.parrot.org jkeenan at svn.parrot.org
Fri Apr 3 10:52:50 UTC 2009


Author: jkeenan
Date: Fri Apr  3 10:52:50 2009
New Revision: 37886
URL: https://trac.parrot.org/parrot/changeset/37886

Log:
Eliminate unreachable condition in create_directories().  Make some variable names more self-documenting.

Modified:
   branches/install_tools/lib/Parrot/Install.pm
   branches/install_tools/t/tools/install/01-install_files.t

Modified: branches/install_tools/lib/Parrot/Install.pm
==============================================================================
--- branches/install_tools/lib/Parrot/Install.pm	Fri Apr  3 10:36:00 2009	(r37885)
+++ branches/install_tools/lib/Parrot/Install.pm	Fri Apr  3 10:52:50 2009	(r37886)
@@ -173,19 +173,18 @@
 
 sub create_directories {
     my($destdir, $directories) = @_;
-#    my($dir, @dirs);
 
     for my $dir ( map { $destdir . $_ } keys %$directories ) {
         unless ( -d $dir ) {
-            my @dirs;
+            my @dirs_needed;
 
             # Make full path to the directory $dir
             while ( ! -d $dir ) {    # Scan up to nearest existing ancestor
-                unshift @dirs, $dir;
+                unshift @dirs_needed, $dir;
                 $dir = dirname($dir);
             }
-            foreach my $d (@dirs) {
-                -d $d or mkdir( $d, 0777 ) or die "mkdir $d: $!";
+            foreach my $d ( @dirs_needed ) {
+                mkdir( $d, 0777 ) or die "mkdir $d: $!";
             }
         }
     }

Modified: branches/install_tools/t/tools/install/01-install_files.t
==============================================================================
--- branches/install_tools/t/tools/install/01-install_files.t	Fri Apr  3 10:36:00 2009	(r37885)
+++ branches/install_tools/t/tools/install/01-install_files.t	Fri Apr  3 10:52:50 2009	(r37886)
@@ -45,42 +45,60 @@
 =cut
 
 {
-    my $dir = tempdir( CLEANUP => 1 );
-    $dir .= '/';
+    my $tdir = tempdir( CLEANUP => 1 );
+    $tdir .= '/';
 
     my @dirs = qw(foo/bar foo/bar/baz);
-    create_directories($dir, { map { $_ => 1 } @dirs });
+    create_directories($tdir, { map { $_ => 1 } @dirs });
     my $dirs_seen = 0;
     foreach my $d (@dirs) {
-        $dirs_seen++ if -d "$dir$d";
+        $dirs_seen++ if -d "$tdir$d";
     }
     is($dirs_seen, 2, 'got expected number of directories created');
 }
 
 {
-    my $dir = tempdir( CLEANUP => 1 );
-    $dir .= '/';
+    my $tdir = tempdir( CLEANUP => 1 );
+    $tdir .= '/';
 
     my @dirs = qw(foo/bar foo/bar/baz);
-    my @created = mkpath( "$dir$dirs[0]" );
+    my @created = mkpath( "$tdir$dirs[0]" );
     ok( ( -d $created[0] ),
         "one directory created before create_directories() is called" );
 
-    create_directories($dir, { map { $_ => 1 } @dirs });
+    create_directories($tdir, { map { $_ => 1 } @dirs });
     my $dirs_seen = 0;
     foreach my $d (@dirs) {
-        $dirs_seen++ if -d "$dir$d";
+        $dirs_seen++ if -d "$tdir$d";
     }
     is($dirs_seen, 2,
         "create_directories() handled case where one directory already existed" );
 }
 
 {
-    my $dir = tempdir( CLEANUP => 1 );
-    $dir .= '/';
+    my $tdir = tempdir( CLEANUP => 1 );
+    $tdir .= '/';
 
     my @dirs = qw(foo/bar foo/bar/baz);
-    create_directories($dir, { map { $_ => 1 } @dirs });
+    my @created = mkpath( $tdir . 'foo' );
+    ok( ( -d $created[0] ),
+        "one directory created before create_directories() is called" );
+
+    create_directories($tdir, { map { $_ => 1 } @dirs });
+    my $dirs_seen = 0;
+    foreach my $d (@dirs) {
+        $dirs_seen++ if -d "$tdir$d";
+    }
+    is($dirs_seen, 2,
+        "create_directories() handled case where one path partially existed" );
+}
+
+{
+    my $tdir = tempdir( CLEANUP => 1 );
+    $tdir .= '/';
+
+    my @dirs = qw(foo/bar foo/bar/baz);
+    create_directories($tdir, { map { $_ => 1 } @dirs });
     my($fullname);
 
     my @files = ( ['README', "$dirs[0]/README"] );
@@ -88,7 +106,7 @@
     {
         my ( $stdout, $stderr, $rv );
         capture(
-            sub { $rv = install_files($dir, 1, @files); },
+            sub { $rv = install_files($tdir, 1, @files); },
             \$stdout,
             \$stderr,
         );
@@ -96,7 +114,7 @@
     
         my $files_created = 0;
         foreach my $el (@files) {
-            $files_created++ if -f "$dir$el->[1]";
+            $files_created++ if -f "$tdir$el->[1]";
         }
         is( $files_created, 0, 'dry-run, so no files created' );
 
@@ -107,7 +125,7 @@
     {
         my ( $stdout, $stderr, $rv );
         capture(
-            sub { $rv = install_files($dir, 0, @files); },
+            sub { $rv = install_files($tdir, 0, @files); },
             \$stdout,
             \$stderr,
         );
@@ -115,7 +133,7 @@
     
         my $files_created = 0;
         foreach my $el (@files) {
-            $files_created++ if -f "$dir$el->[1]";
+            $files_created++ if -f "$tdir$el->[1]";
         }
         is( $files_created, 1, 'production, so 1 file created' );
 


More information about the parrot-commits mailing list