return 1;
}
-print "1..58\n";
+print "1..59\n";
$Is_MSWin32 = $^O eq 'MSWin32';
$Is_NetWare = $^O eq 'NetWare';
close FOO; # just mention it, squelch used-only-once
if ($Is_MSWin32 || $Is_NetWare || $Is_Dos || $Is_MPE || $Is_MacOS) {
- skip('SIGINT not safe on this platform') for 1..4;
+ skip('SIGINT not safe on this platform') for 1..5;
}
else {
# the next tests are done in a subprocess because sh spits out a
my $todo = ($^O eq 'os2' ? ' # TODO: EMX v0.9d_fix4 bug: wrong nibble? ' : '');
print $? & 0xFF ? "ok 6$todo\n" : "not ok 6$todo\n";
- $test += 4;
+ open(CMDPIPE, "| $PERL");
+ print CMDPIPE <<'END';
+
+ sub PVBM () { 'foo' }
+ index 'foo', PVBM;
+ my $pvbm = PVBM;
+
+ sub foo { exit 0 }
+
+ $SIG{"INT"} = $pvbm;
+ kill "INT", $$; sleep 1;
+END
+ close CMDPIPE;
+ $? >>= 8 if $^O eq 'VMS';
+ print $? ? "not ok 7\n" : "ok 7\n";
+
+ $test += 5;
}
# can we slice ENV?
# 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();
}
my $perl = ($Is_MacOS || $Is_VMS) ? $^X : "$wd/perl";
my $headmaybe = '';
+ my $middlemaybe = '';
my $tailmaybe = '';
$script = "$wd/show-shebang";
if ($Is_MSWin32) {
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+"\$\@"}'
}
$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";
if (!$Is_VMS) {
local @ISA;
local %ENV;
- eval { push @ISA, __PACKAGE__ };
+ # This used to be __PACKAGE__, but that causes recursive
+ # inheritance, which is detected earlier now and broke
+ # this test
+ eval { push @ISA, __FILE__ };
ok( $@ eq '', 'Push a constant on a magic array');
$@ and print "# $@";
eval { %ENV = (PATH => __PACKAGE__) };