X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fop%2Fmagic.t;h=7f08e06f85184540cd4726225b0fe84f3869f331;hb=0f5d15d614a56a8b655f35e4e8c6a0dba34da106;hp=e48b71cd6854f3b755d39ecde00802efc87f8be4;hpb=b715f106331fad5cca1779055ebe7cca8c8f25a9;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/op/magic.t b/t/op/magic.t index e48b71c..7f08e06 100755 --- a/t/op/magic.t +++ b/t/op/magic.t @@ -21,13 +21,14 @@ sub ok { $Is_MSWin32 = $^O eq 'MSWin32'; $Is_VMS = $^O eq 'VMS'; +$Is_Dos = $^O eq 'dos'; $PERL = ($Is_MSWin32 ? '.\perl' : './perl'); -print "1..30\n"; +print "1..35\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"; } -else { ok 1, `echo \$foo` eq "hi there\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"; } +else { ok 1, `echo \$FOO` eq "hi there\n"; } unlink 'ajslkdfpqjsjfk'; $! = 0; @@ -35,9 +36,9 @@ open(FOO,'ajslkdfpqjsjfk'); ok 2, $!, $!; close FOO; # just mention it, squelch used-only-once -if ($Is_MSWin32) { - ok 3,1; - ok 4,1; +if ($Is_MSWin32 || $Is_Dos) { + ok "3 # skipped",1; + ok "4 # skipped",1; } else { # the next tests are embedded inside system simply because sh spits out @@ -108,7 +109,7 @@ ok 18, $$ > 0, $$; # $^X and $0 { if ($^O eq 'qnx') { - chomp($wd = `pwd`); + chomp($wd = `/usr/bin/fullpath -t`); } else { $wd = '.'; @@ -134,11 +135,13 @@ __END__ :endofperl EOT } - $s1 = $s2 = "\$^X is $perl, \$0 is $script\n"; - if ($^O eq 'os2') { - # Started by ksh, which adds suffixes '.exe' and '.' to perl and script - $s2 = "\$^X is $wd/perl.exe, \$0 is $script.\n"; + if ($^O eq 'os390') { # no shebang + $headmaybe = <$script"), $!; ok 20, print(SCRIPT $headmaybe . <= 5.00319, $]; ok 27, $^O; ok 28, $^T > 850000000, $^T; -if ($Is_VMS) { - ok 29, 1; - ok 30, 1; +if ($Is_VMS || $Is_Dos) { + ok "29 # skipped", 1; + ok "30 # skipped", 1; } else { $PATH = $ENV{PATH}; @@ -179,3 +184,26 @@ else { : (`echo \$NoNeSuCh` eq "foo\n") ); } +{ + local $SIG{'__WARN__'} = sub { print "not " }; + $! = undef; + print "ok 31\n"; +} + +# test case-insignificance of %ENV (these tests must be enabled only +# when perl is compiled with -DENV_IS_CASELESS) +if ($Is_MSWin32) { + %ENV = (); + $ENV{'Foo'} = 'bar'; + $ENV{'fOo'} = 'baz'; + ok 32, (scalar(keys(%ENV)) == 1); + ok 33, exists($ENV{'FOo'}); + ok 34, (delete($ENV{'foO'}) eq 'baz'); + ok 35, (scalar(keys(%ENV)) == 0); +} +else { + ok "32 # skipped",1; + ok "33 # skipped",1; + ok "34 # skipped",1; + ok "35 # skipped",1; +}