Fix t/op/magic.t failures under Cygwin
Jerry D. Hedden [Thu, 6 Sep 2007 13:37:34 +0000 (09:37 -0400)]
From: "Jerry D. Hedden" <jdhedden@cpan.org>
Message-ID: <1ff86f510709061037q6744827cub29f666ca5fb5904@mail.gmail.com>

p4raw-id: //depot/perl@31809

t/op/magic.t

index 0ce58d3..799c717 100755 (executable)
@@ -193,6 +193,9 @@ ok $@ =~ /^Modification of a read-only value attempted/;
        # Cygwin turns the symlink into the real file
        chomp($wd = `pwd`);
        $wd =~ s#/t$##;
+       if ($Is_Cygwin) {
+          $wd = Cygwin::win_to_posix_path(Cygwin::posix_to_win_path($wd, 1));
+       }
     }
     elsif($Is_os2) {
        $wd = Cwd::sys_cwd();
@@ -205,6 +208,7 @@ ok $@ =~ /^Modification of a read-only value attempted/;
     }
     my $perl = ($Is_MacOS || $Is_VMS) ? $^X : "$wd/perl";
     my $headmaybe = '';
+    my $middlemaybe = '';
     my $tailmaybe = '';
     $script = "$wd/show-shebang";
     if ($Is_MSWin32) {
@@ -234,6 +238,12 @@ EOT
     elsif ($Is_VMS) {
       $script = "[]show-shebang";
     }
+    elsif ($Is_Cygwin) {
+      $middlemaybe = <<'EOX'
+$^X = Cygwin::win_to_posix_path(Cygwin::posix_to_win_path($^X, 1));
+$0 = Cygwin::win_to_posix_path(Cygwin::posix_to_win_path($0, 1));
+EOX
+    }
     if ($^O eq 'os390' or $^O eq 'posix-bc' or $^O eq 'vmesa') {  # no shebang
        $headmaybe = <<EOH ;
     eval 'exec ./perl -S \$0 \${1+"\$\@"}'
@@ -242,7 +252,7 @@ EOH
     }
     $s1 = "\$^X is $perl, \$0 is $script\n";
     ok open(SCRIPT, ">$script"), $!;
-    ok print(SCRIPT $headmaybe . <<EOB . <<'EOF' . $tailmaybe), $!;
+    ok print(SCRIPT $headmaybe . <<EOB . $middlemaybe . <<'EOF' . $tailmaybe), $!;
 #!$wd/perl
 EOB
 print "\$^X is $^X, \$0 is $0\n";