summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Zakharevich <ilya@math.ohio-state.edu>1997-01-16 23:48:18 -0500
committerChip Salzenberg <chip@atlantic.net>1997-01-25 15:58:00 +1200
commitbbad36071d5a6d4be3588f0f10c88247439076d8 (patch)
tree4a82c155a6c0ce09155044f713245fc3c7b3144e
parent7e42bd57a6867e174bc3bc555c3268b485940a98 (diff)
downloadperl-bbad36071d5a6d4be3588f0f10c88247439076d8.tar.gz
Test patches for OS/2
a) Teaches tests in os2/OS2/*/* new format of $Config{extensions}; os2/OS2/ExtAttr/t/os2_ea.t os2/OS2/PrfDB/t/os2_prfdb.t os2/OS2/REXX/t/rx_cmprt.t os2/OS2/REXX/t/rx_dllld.t os2/OS2/REXX/t/rx_objcall.t os2/OS2/REXX/t/rx_sql.test os2/OS2/REXX/t/rx_tiesql.test os2/OS2/REXX/t/rx_tievar.t os2/OS2/REXX/t/rx_tieydb.t os2/OS2/REXX/t/rx_varset.t os2/OS2/REXX/t/rx_vrexx.t b) Closes all the files before unlinking - for DOSISH systems; t/cmd/while.t t/comp/multiline.t t/io/argv.t t/lib/anydbm.t t/lib/gdbm.t t/lib/ndbm.t t/lib/odbm.t t/lib/sdbm.t c) t/README mentions running `harness' to get better granularity; t/README d) New test op/lex_assign.t added - will check optimization of lexicals when applied - 153 cases (some just ignored since hard to implement). MANIFEST t/op/lex_assign.t e) When a script is started via shell, $Config{exe_ext} may be appended. t/op/magic.t f) path/echo may print a warning if run without args t/comp/colon.t g) Error explanations more verbose t/op/cmp.t t/op/magic.t p5p-msgid: <199701170448.XAA28948@monk.mps.ohio-state.edu>
-rw-r--r--MANIFEST1
-rw-r--r--os2/OS2/ExtAttr/t/os2_ea.t4
-rw-r--r--os2/OS2/PrfDB/t/os2_prfdb.t5
-rw-r--r--os2/OS2/REXX/t/rx_cmprt.t2
-rw-r--r--os2/OS2/REXX/t/rx_dllld.t2
-rw-r--r--os2/OS2/REXX/t/rx_objcall.t2
-rw-r--r--os2/OS2/REXX/t/rx_sql.test2
-rw-r--r--os2/OS2/REXX/t/rx_tiesql.test2
-rw-r--r--os2/OS2/REXX/t/rx_tievar.t2
-rw-r--r--os2/OS2/REXX/t/rx_tieydb.t2
-rw-r--r--os2/OS2/REXX/t/rx_varset.t2
-rw-r--r--os2/OS2/REXX/t/rx_vrexx.t2
-rw-r--r--t/README5
-rwxr-xr-xt/cmd/while.t1
-rwxr-xr-xt/comp/colon.t2
-rwxr-xr-xt/comp/multiline.t2
-rwxr-xr-xt/io/argv.t1
-rwxr-xr-xt/lib/anydbm.t1
-rwxr-xr-xt/lib/gdbm.t1
-rwxr-xr-xt/lib/ndbm.t1
-rwxr-xr-xt/lib/odbm.t1
-rwxr-xr-xt/lib/sdbm.t1
-rwxr-xr-xt/op/cmp.t4
-rw-r--r--t/op/lex_assign.t214
-rwxr-xr-xt/op/magic.t8
25 files changed, 252 insertions, 18 deletions
diff --git a/MANIFEST b/MANIFEST
index 6b202da522..6a45129282 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -657,6 +657,7 @@ t/op/inc.t See if inc/dec of integers near 32 bit limit work
t/op/index.t See if index works
t/op/int.t See if int works
t/op/join.t See if join works
+t/op/lex_assign.t See if assignment to lexicals work
t/op/list.t See if array lists work
t/op/local.t See if local works
t/op/magic.t See if magic variables work
diff --git a/os2/OS2/ExtAttr/t/os2_ea.t b/os2/OS2/ExtAttr/t/os2_ea.t
index dc6f996564..a1da398d45 100644
--- a/os2/OS2/ExtAttr/t/os2_ea.t
+++ b/os2/OS2/ExtAttr/t/os2_ea.t
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib' if -d 'lib';
require Config; import Config;
- if (-d 'lib' and $Config{'extensions'} !~ /\bOS2::REXX\b/) {
+ if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
print "1..0\n";
exit 0;
}
@@ -76,4 +76,4 @@ print "ok 12\n";
}
print "ok 21\n";
-
+unlink 't.out';
diff --git a/os2/OS2/PrfDB/t/os2_prfdb.t b/os2/OS2/PrfDB/t/os2_prfdb.t
index 4c0883db50..a8c9752d36 100644
--- a/os2/OS2/PrfDB/t/os2_prfdb.t
+++ b/os2/OS2/PrfDB/t/os2_prfdb.t
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib' if -d 'lib';
require Config; import Config;
- if (-d 'lib' and $Config{'extensions'} !~ /\bOS2::PrfDB\b/) {
+ if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)PrfDB\b/) {
print "1..0\n";
exit 0;
}
@@ -183,3 +183,6 @@ tie %hash2, 'OS2::PrfDB', $inifile;
print "ok 47\n";
print ($hash2{nnn}->{mmm} eq "67" ? "ok 48\n" : "not ok 48\n# `$val'\n");
+
+untie %hash2;
+unlink $inifile;
diff --git a/os2/OS2/REXX/t/rx_cmprt.t b/os2/OS2/REXX/t/rx_cmprt.t
index a73e43e36e..f2113e3aa3 100644
--- a/os2/OS2/REXX/t/rx_cmprt.t
+++ b/os2/OS2/REXX/t/rx_cmprt.t
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib' if -d 'lib';
require Config; import Config;
- if (-d 'lib' and $Config{'extensions'} !~ /\bOS2::REXX\b/) {
+ if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
print "1..0\n";
exit 0;
}
diff --git a/os2/OS2/REXX/t/rx_dllld.t b/os2/OS2/REXX/t/rx_dllld.t
index 317743f3cb..9d81bf3e56 100644
--- a/os2/OS2/REXX/t/rx_dllld.t
+++ b/os2/OS2/REXX/t/rx_dllld.t
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib' if -d 'lib';
require Config; import Config;
- if (-d 'lib' and $Config{'extensions'} !~ /\bOS2::REXX\b/) {
+ if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
print "1..0\n";
exit 0;
}
diff --git a/os2/OS2/REXX/t/rx_objcall.t b/os2/OS2/REXX/t/rx_objcall.t
index b4f04c308a..cb3c52a8b6 100644
--- a/os2/OS2/REXX/t/rx_objcall.t
+++ b/os2/OS2/REXX/t/rx_objcall.t
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib' if -d 'lib';
require Config; import Config;
- if (-d 'lib' and $Config{'extensions'} !~ /\bOS2::REXX\b/) {
+ if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
print "1..0\n";
exit 0;
}
diff --git a/os2/OS2/REXX/t/rx_sql.test b/os2/OS2/REXX/t/rx_sql.test
index 4f984250a3..602c76dc47 100644
--- a/os2/OS2/REXX/t/rx_sql.test
+++ b/os2/OS2/REXX/t/rx_sql.test
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib';
require Config; import Config;
- if ($Config{'extensions'} !~ /\bOS2::REXX\b/) {
+ if ($Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
print "1..0\n";
exit 0;
}
diff --git a/os2/OS2/REXX/t/rx_tiesql.test b/os2/OS2/REXX/t/rx_tiesql.test
index 2947516755..c85a1e990b 100644
--- a/os2/OS2/REXX/t/rx_tiesql.test
+++ b/os2/OS2/REXX/t/rx_tiesql.test
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib';
require Config; import Config;
- if ($Config{'extensions'} !~ /\bOS2::REXX\b/) {
+ if ($Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
print "1..0\n";
exit 0;
}
diff --git a/os2/OS2/REXX/t/rx_tievar.t b/os2/OS2/REXX/t/rx_tievar.t
index 6132e23f80..77f90c2f59 100644
--- a/os2/OS2/REXX/t/rx_tievar.t
+++ b/os2/OS2/REXX/t/rx_tievar.t
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib' if -d 'lib';
require Config; import Config;
- if (-d 'lib' and $Config{'extensions'} !~ /\bOS2::REXX\b/) {
+ if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
print "1..0\n";
exit 0;
}
diff --git a/os2/OS2/REXX/t/rx_tieydb.t b/os2/OS2/REXX/t/rx_tieydb.t
index 8251051265..30a2dafb62 100644
--- a/os2/OS2/REXX/t/rx_tieydb.t
+++ b/os2/OS2/REXX/t/rx_tieydb.t
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib' if -d 'lib';
require Config; import Config;
- if (-d 'lib' and $Config{'extensions'} !~ /\bOS2::REXX\b/) {
+ if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
print "1..0\n";
exit 0;
}
diff --git a/os2/OS2/REXX/t/rx_varset.t b/os2/OS2/REXX/t/rx_varset.t
index 9d4f3b2e56..166cf53623 100644
--- a/os2/OS2/REXX/t/rx_varset.t
+++ b/os2/OS2/REXX/t/rx_varset.t
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib' if -d 'lib';
require Config; import Config;
- if (-d 'lib' and $Config{'extensions'} !~ /\bOS2::REXX\b/) {
+ if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
print "1..0\n";
exit 0;
}
diff --git a/os2/OS2/REXX/t/rx_vrexx.t b/os2/OS2/REXX/t/rx_vrexx.t
index a40749f55f..04ca6636db 100644
--- a/os2/OS2/REXX/t/rx_vrexx.t
+++ b/os2/OS2/REXX/t/rx_vrexx.t
@@ -2,7 +2,7 @@ BEGIN {
chdir 't' if -d 't/lib';
@INC = '../lib' if -d 'lib';
require Config; import Config;
- if (-d 'lib' and $Config{'extensions'} !~ /\bOS2::REXX\b/) {
+ if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
print "1..0\n";
exit 0;
}
diff --git a/t/README b/t/README
index 00bf561c23..6fb569b98f 100644
--- a/t/README
+++ b/t/README
@@ -8,4 +8,9 @@ If you put out extra lines with a '#' character on the front, you don't
have to worry about removing the extra print statements later since TEST
ignores lines beginning with '#'.
+If you know that "basic" features work and expect that some test are going
+to fail, it is adviced to run tests via Test::Harness thusly:
+ ./perl -I../lib harness
+This would pinpoint failed tests with better granularity.
+
If you come up with new tests, send them to larry@wall.org.
diff --git a/t/cmd/while.t b/t/cmd/while.t
index 4c8c10e990..c6e464d444 100755
--- a/t/cmd/while.t
+++ b/t/cmd/while.t
@@ -90,6 +90,7 @@ loop: while (<fh>) {
if (!eof || $bad) {print "not ok 8\n";} else {print "ok 8\n";}
if (!$badcont) {print "ok 9\n";} else {print "not ok 9\n";}
+close(fh) || die "Can't close Cmd_while.tmp.";
unlink 'Cmd_while.tmp' || `/bin/rm Cmd_While.tmp`;
#$x = 0;
diff --git a/t/comp/colon.t b/t/comp/colon.t
index 2a37367d75..d2c64fe4c5 100755
--- a/t/comp/colon.t
+++ b/t/comp/colon.t
@@ -110,7 +110,7 @@ ok 18, (not eval "qw:1" and
not eval "qw:echo:ohce: >= 0");
ok 19, (not eval "qx:1" and
- eval "qx:echo: eq qx|echo|" and
+ eval "qx:echo 1: eq qx|echo 1|" and # echo without args may warn
not eval "qx:echo:ohce: >= 0");
ok 20, (not eval "s:1" and
diff --git a/t/comp/multiline.t b/t/comp/multiline.t
index 634b06a7a8..0e022e9992 100755
--- a/t/comp/multiline.t
+++ b/t/comp/multiline.t
@@ -35,6 +35,8 @@ if ($count == 3) {print "ok 3\n";} else {print "not ok 3\n";}
$_ = `cat Comp.try`;
if (/.*\n.*\n.*\n$/) {print "ok 4\n";} else {print "not ok 4\n";}
+
+close(try) || (die "Can't close temp file.");
unlink 'Comp.try' || `/bin/rm -f Comp.try`;
if ($_ eq $y) {print "ok 5\n";} else {print "not ok 5\n";}
diff --git a/t/io/argv.t b/t/io/argv.t
index 40ed23b373..bf592f91cb 100755
--- a/t/io/argv.t
+++ b/t/io/argv.t
@@ -34,3 +34,4 @@ else
{print "not ok 5\n";}
`/bin/rm -f Io.argv.tmp` if -x '/bin/rm';
+unlink 'Io.argv.tmp';
diff --git a/t/lib/anydbm.t b/t/lib/anydbm.t
index 80b39df141..52ab22b13e 100755
--- a/t/lib/anydbm.t
+++ b/t/lib/anydbm.t
@@ -111,4 +111,5 @@ print join(':',200..400) eq join(':',@foo) ? "ok 10\n" : "not ok 10\n";
print ($h{'foo'} eq '' ? "ok 11\n" : "not ok 11\n");
print ($h{''} eq 'bar' ? "ok 12\n" : "not ok 12\n");
+untie %h;
unlink 'Op.dbmx.dir', $Dfile;
diff --git a/t/lib/gdbm.t b/t/lib/gdbm.t
index c888c00f85..62bb936ff1 100755
--- a/t/lib/gdbm.t
+++ b/t/lib/gdbm.t
@@ -114,4 +114,5 @@ print join(':',200..400) eq join(':',@foo) ? "ok 10\n" : "not ok 10\n";
print ($h{'foo'} eq '' ? "ok 11\n" : "not ok 11\n");
print ($h{''} eq 'bar' ? "ok 12\n" : "not ok 12\n");
+untie %h;
unlink 'Op.dbmx.dir', $Dfile;
diff --git a/t/lib/ndbm.t b/t/lib/ndbm.t
index 15aa93a725..8e2ba8164a 100755
--- a/t/lib/ndbm.t
+++ b/t/lib/ndbm.t
@@ -117,4 +117,5 @@ print join(':',200..400) eq join(':',@foo) ? "ok 10\n" : "not ok 10\n";
print ($h{'foo'} eq '' ? "ok 11\n" : "not ok 11\n");
print ($h{''} eq 'bar' ? "ok 12\n" : "not ok 12\n");
+untie %h;
unlink 'Op.dbmx.dir', $Dfile;
diff --git a/t/lib/odbm.t b/t/lib/odbm.t
index 0b1fa50cb9..0c530d2238 100755
--- a/t/lib/odbm.t
+++ b/t/lib/odbm.t
@@ -117,4 +117,5 @@ print join(':',200..400) eq join(':',@foo) ? "ok 10\n" : "not ok 10\n";
print ($h{'foo'} eq '' ? "ok 11\n" : "not ok 11\n");
print ($h{''} eq 'bar' ? "ok 12\n" : "not ok 12\n");
+untie %h;
unlink 'Op.dbmx.dir', $Dfile;
diff --git a/t/lib/sdbm.t b/t/lib/sdbm.t
index 1bb3fde392..65419f9711 100755
--- a/t/lib/sdbm.t
+++ b/t/lib/sdbm.t
@@ -116,4 +116,5 @@ print join(':',200..400) eq join(':',@foo) ? "ok 10\n" : "not ok 10\n";
print ($h{'foo'} eq '' ? "ok 11\n" : "not ok 11\n");
print ($h{''} eq 'bar' ? "ok 12\n" : "not ok 12\n");
+untie %h;
unlink 'Op.dbmx.dir', $Dfile;
diff --git a/t/op/cmp.t b/t/op/cmp.t
index aba7c2e9dc..4a7e68d448 100755
--- a/t/op/cmp.t
+++ b/t/op/cmp.t
@@ -18,7 +18,7 @@ for my $i (0..$#FOO) {
print "ok $ok\n";
}
else {
- print "not ok $ok ($FOO[$i] <=> $FOO[$j])\n";
+ print "not ok $ok ($FOO[$i] <=> $FOO[$j]) gives: '$cmp'\n";
}
$ok++;
$cmp = $FOO[$i] cmp $FOO[$j];
@@ -29,7 +29,7 @@ for my $i (0..$#FOO) {
print "ok $ok\n";
}
else {
- print "not ok $ok ($FOO[$i] cmp $FOO[$j])\n";
+ print "not ok $ok ($FOO[$i] cmp $FOO[$j]) gives '$cmp'\n";
}
}
}
diff --git a/t/op/lex_assign.t b/t/op/lex_assign.t
new file mode 100644
index 0000000000..d35f39c2c3
--- /dev/null
+++ b/t/op/lex_assign.t
@@ -0,0 +1,214 @@
+#!./perl
+
+BEGIN {
+ chdir 't' if -d 't';
+ @INC = '../lib';
+}
+
+umask 0;
+$xref = \ "";
+@a = (1..5);
+%h = (1..6);
+$aref = \@a;
+$href = \%h;
+open OP, qq{$^X -le 'print "aaa Ok ok" while \$i++ < 100'|};
+$chopit = 'aaaaaa';
+@chopar = (113 .. 119);
+$posstr = '123456';
+$cstr = 'aBcD.eF';
+pos $posstr = 3;
+$nn = $n = 2;
+sub subb {"in s"}
+
+@INPUT = <DATA>;
+print "1..", (scalar @INPUT), "\n";
+$ord = 0;
+
+sub wrn {"@_"}
+
+for (@INPUT) {
+ $ord++;
+ ($op, undef, $comment) = /^([^\#]+)(\#\s+(.*))?/;
+ $comment = $op unless defined $comment;
+ $op = "$op==$op" unless $op =~ /==/;
+ ($op, $expectop) = $op =~ /(.*)==(.*)/;
+
+ $skip = ($op =~ /^'\?\?\?'/) ? "skip" : "not";
+ $integer = ($comment =~ /^i_/) ? "use integer" : '' ;
+ (print "#skipping $comment:\nok $ord\n"), next if $skip eq 'skip';
+
+ eval <<EOE;
+ local \$SIG{__WARN__} = \\&wrn;
+ my \$a = 'fake';
+ $integer;
+ \$a = $op;
+ \$b = $expectop;
+ if (\$a ne \$b) {
+ print "# \$comment: got `\$a', expected `\$b'\n";
+ print "\$skip " if \$a ne \$b or \$skip eq 'skip';
+ }
+ print "ok \$ord\\n";
+EOE
+ if ($@) {
+ if ($@ =~ /is unimplemented/) {
+ print "# skipping $comment: unimplemented:\nok $ord\n";
+ } else {
+ warn $@;
+ print "not ok $ord\n";
+ }
+ }
+}
+__END__
+ref $xref # ref
+ref $cstr # ref nonref
+`ls` # backtick
+`$undefed` # backtick undef
+<*> # glob
+<OP> # readline
+'faked' # rcatline
+(@z = (1 .. 3)) # aassign
+chop $chopit # chop
+(chop (@x=@chopar)) # schop
+chomp $chopit # chomp
+(chop (@x=@chopar)) # schomp
+pos $posstr # pos
+pos $chopit # pos returns undef
+$nn++==2 # postinc
+$nn++==3 # i_postinc
+$nn--==4 # postdec
+$nn--==3 # i_postdec
+$n ** $n # pow
+$n * $n # multiply
+$n * $n # i_multiply
+$n / $n # divide
+$n / $n # i_divide
+$n % $n # modulo
+$n % $n # i_modulo
+$n x $n # repeat
+$n + $n # add
+$n + $n # i_add
+$n - $n # subtract
+$n - $n # i_subtract
+$n . $n # concat
+$n . $a=='2fake' # concat with self
+"3$a"=='3fake' # concat with self in stringify
+"$n" # stringify
+$n << $n # left_shift
+$n >> $n # right_shift
+$n <=> $n # ncmp
+$n <=> $n # i_ncmp
+$n cmp $n # scmp
+$n & $n # bit_and
+$n ^ $n # bit_xor
+$n | $n # bit_or
+-$n # negate
+-$n # i_negate
+~$n # complement
+atan2 $n,$n # atan2
+sin $n # sin
+cos $n # cos
+'???' # rand
+exp $n # exp
+log $n # log
+sqrt $n # sqrt
+int $n # int
+hex $n # hex
+oct $n # oct
+abs $n # abs
+length $posstr # length
+substr $posstr, 2, 2 # substr
+vec("abc",2,8) # vec
+index $posstr, 2 # index
+rindex $posstr, 2 # rindex
+sprintf "%i%i", $n, $n # sprintf
+ord $n # ord
+chr $n # chr
+crypt $n, $n # crypt
+ucfirst ($cstr . "a") # ucfirst padtmp
+ucfirst $cstr # ucfirst
+lcfirst $cstr # lcfirst
+uc $cstr # uc
+lc $cstr # lc
+quotemeta $cstr # quotemeta
+@$aref # rv2av
+@$undefed # rv2av undef
+each %h==1 # each
+values %h # values
+keys %h # keys
+%$href # rv2hv
+pack "C2", $n,$n # pack
+split /a/, "abad" # split
+join "a"; @a # join
+push @a,3==6 # push
+unshift @aaa # unshift
+reverse @a # reverse
+reverse $cstr # reverse - scal
+grep $_, 1,0,2,0,3 # grepwhile
+map "x$_", 1,0,2,0,3 # mapwhile
+subb() # entersub
+caller # caller
+warn "ignore this\n" # warn
+'faked' # die
+open BLAH, "<non-existent" # open
+fileno STDERR # fileno
+umask 0 # umask
+select STDOUT # sselect
+select "","","",0 # select
+getc OP # getc
+'???' # read
+'???' # sysread
+'???' # syswrite
+'???' # send
+'???' # recv
+'???' # tell
+'???' # fcntl
+'???' # ioctl
+'???' # flock
+'???' # accept
+'???' # shutdown
+'???' # ftsize
+'???' # ftmtime
+'???' # ftatime
+'???' # ftctime
+chdir 'non-existent' # chdir
+'???' # chown
+'???' # chroot
+unlink 'non-existent' # unlink
+chmod 'non-existent' # chmod
+utime 'non-existent' # utime
+rename 'non-existent', 'non-existent1' # rename
+link 'non-existent', 'non-existent1' # link
+symlink 'non-existent', 'non-existent1' # symlink
+readlink 'non-existent', 'non-existent1' # readlink
+'???' # mkdir
+'???' # rmdir
+'???' # telldir
+'???' # fork
+'???' # wait
+'???' # waitpid
+system 'sh -c true' # system
+'???' # exec
+kill 0, $$ # kill
+getppid # getppid
+getpgrp # getpgrp
+'???' # setpgrp
+getpriority $$, $$ # getpriority
+'???' # setpriority
+time # time
+localtime # localtime
+gmtime # gmtime
+sleep 1 # sleep
+'???' # alarm
+'???' # shmget
+'???' # shmctl
+'???' # shmread
+'???' # shmwrite
+'???' # msgget
+'???' # msgctl
+'???' # msgsnd
+'???' # msgrcv
+'???' # semget
+'???' # semctl
+'???' # semop
+'???' # getlogin
+'???' # syscall
diff --git a/t/op/magic.t b/t/op/magic.t
index a050510f38..f12f67b66c 100755
--- a/t/op/magic.t
+++ b/t/op/magic.t
@@ -7,7 +7,7 @@ BEGIN {
$| = 1;
chdir 't' if -d 't';
@INC = '../lib';
- $SIG{__WARN__} = sub { die @_ };
+ $SIG{__WARN__} = sub { die "dying on warning: ", @_ };
}
sub ok {
@@ -107,9 +107,11 @@ ok 21, close(SCRIPT), $!;
ok 22, chmod(0755, $script), $!;
$s = "\$^X is ./perl, \$0 is $script\n";
$_ = `$script`;
-ok 23, $_ eq $s, ":$_:";
+ok 23, $_ eq $s, ":$_:!=:$s:" if $^O ne 'os2';
+# Started by ksh, which sets adds suffixes '.exe' and '.' to perl and script :
+ok 23, $_ eq "\$^X is ./perl.exe, \$0 is $script.\n", ":$_:" if $^O eq 'os2';
$_ = `./perl $script`;
-ok 24, $_ eq $s, ":$_:";
+ok 24, $_ eq $s, ":$_:!=:$s:";
ok 25, unlink($script), $!;
# $], $^O, $^T