This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Create proper Cygwin $ENV{PATH} in test.pl
authorJerry D. Hedden <jdhedden@cpan.org>
Tue, 16 Nov 2010 15:44:02 +0000 (10:44 -0500)
committerFather Chrysostomos <sprout@cpan.org>
Wed, 17 Nov 2010 04:40:12 +0000 (20:40 -0800)
For Cygwin, runperl() in test.pl adds ':/bin' to $ENV{PATH}.  However, if
$ENV{PATH} is initially empty, the leading colon causes the following error:

Insecure directory in $ENV{PATH} while running with -T switch at ./test.pl line 566.

This fix sets $ENV{PATH} to just '/bin' when it's intially empty.

t/test.pl

index a136a4f..42b84cd 100644 (file)
--- a/t/test.pl
+++ b/t/test.pl
@@ -558,8 +558,12 @@ sub runperl {
            join $sep, grep { $_ ne "" and $_ ne "." and -d $_ and
                ($is_mswin or $is_vms or !(stat && (stat _)[2]&0022)) }
                    split quotemeta ($sep), $1;
-       $ENV{PATH} = $ENV{PATH} . "$sep/bin" if $is_cygwin;  # Must have /bin under Cygwin
-
+       if ($is_cygwin) {   # Must have /bin under Cygwin
+           if (length $ENV{PATH}) {
+               $ENV{PATH} = $ENV{PATH} . $sep;
+           }
+           $ENV{PATH} = $ENV{PATH} . '/bin';
+       }
        $runperl =~ /(.*)/s;
        $runperl = $1;