BEGIN {
$| = 1;
chdir 't' if -d 't';
- unshift @INC, '../lib';
+ @INC = '../lib';
$SIG{__WARN__} = sub { die "Dying on warning: ", @_ };
}
}
$Is_MSWin32 = $^O eq 'MSWin32';
+$Is_NetWare = $^O eq 'NetWare';
$Is_VMS = $^O eq 'VMS';
$Is_Dos = $^O eq 'dos';
$Is_os2 = $^O eq 'os2';
$Is_Cygwin = $^O eq 'cygwin';
-$PERL = ($Is_MSWin32 ? '.\perl' : './perl');
+$Is_MPE = $^O eq 'mpeix';
+$PERL = ($Is_MSWin32 ? '.\perl' : ($Is_NetWare ? 'perl' : './perl'));
-print "1..35\n";
+print "1..41\n";
eval '$ENV{"FOO"} = "hi there";'; # check that ENV is inited inside eval
-if ($Is_MSWin32) { ok 1, `cmd /x /c set FOO` eq "FOO=hi there\n"; }
+# cmd.exe will echo 'variable=value' but 4nt will echo just the value
+# -- Nikola Knezevic
+if ($Is_MSWin32) { ok 1, `set FOO` =~ /^(FOO=)?hi there$/; }
else { ok 1, `echo \$FOO` eq "hi there\n"; }
unlink 'ajslkdfpqjsjfk';
ok 2, $!, $!;
close FOO; # just mention it, squelch used-only-once
-if ($Is_MSWin32 || $Is_Dos) {
+if ($Is_MSWin32 || $Is_NetWare || $Is_Dos || $Is_MPE) {
ok "3 # skipped",1;
ok "4 # skipped",1;
}
}
else {
$PATH = $ENV{PATH};
+ $PDL = $ENV{PERL_DESTRUCT_LEVEL} || 0;
$ENV{foo} = "bar";
%ENV = ();
$ENV{PATH} = $PATH;
- ok 29, ($Is_MSWin32 ? (`cmd /x /c set foo 2>NUL` eq "")
+ $ENV{PERL_DESTRUCT_LEVEL} = $PDL || 0;
+ ok 29, ($Is_MSWin32 ? (`set foo 2>NUL` eq "")
: (`echo \$foo` eq "\n") );
- $ENV{NoNeSuCh} = "foo";
+ $ENV{__NoNeSuCh} = "foo";
$0 = "bar";
- ok 30, ($Is_MSWin32 ? (`cmd /x /c set NoNeSuCh` eq "NoNeSuCh=foo\n")
- : (`echo \$NoNeSuCh` eq "foo\n") );
+# cmd.exe will echo 'variable=value' but 4nt will echo just the value
+# -- Nikola Knezevic
+ ok 30, ($Is_MSWin32 ? (`set __NoNeSuCh` =~ /^(__NoNeSuCh=)?foo$/)
+ : (`echo \$__NoNeSuCh` eq "foo\n") );
}
{
# test case-insignificance of %ENV (these tests must be enabled only
# when perl is compiled with -DENV_IS_CASELESS)
-if ($Is_MSWin32) {
+if ($Is_MSWin32 || $Is_NetWare) {
%ENV = ();
$ENV{'Foo'} = 'bar';
$ENV{'fOo'} = 'baz';
ok "34 # skipped: no caseless %ENV support",1;
ok "35 # skipped: no caseless %ENV support",1;
}
+
+# Make sure Errno hasn't been prematurely autoloaded
+
+ok 36, !defined %Errno::;
+
+# Test auto-loading of Errno when %! is used
+
+ok 37, scalar eval q{
+ my $errs = %!;
+ defined %Errno::;
+}, $@;
+
+
+# Make sure that Errno loading doesn't clobber $!
+
+undef %Errno::;
+delete $INC{"Errno.pm"};
+
+open(FOO, "nonesuch"); # Generate ENOENT
+my %errs = %{"!"}; # Cause Errno.pm to be loaded at run-time
+ok 38, ${"!"}{ENOENT};
+
+ok 39, $^S == 0;
+eval { ok 40, $^S == 1 };
+ok 41, $^S == 0;