BEGIN {
chdir 't' if -d 't';
- unshift @INC, '../lib';
+ @INC = '../lib';
}
use warnings;
-print "1..55\n";
-
-# XXX known to leak scalars
-{
- no warnings 'uninitialized';
- $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
-}
+print "1..58\n";
# these shouldn't hang
{
@x = cxt_five();
sub cxt_six { sort test_if_scalar 1,2 }
@x = cxt_six();
+
+# test against a reentrancy bug
+{
+ package Bar;
+ sub compare { $a cmp $b }
+ sub reenter { my @force = sort compare qw/a b/ }
+}
+{
+ my($def, $init) = (0, 0);
+ @b = sort {
+ $def = 1 if defined $Bar::a;
+ Bar::reenter() unless $init++;
+ $a <=> $b
+ } qw/4 3 1 2/;
+ print ("@b" eq '1 2 3 4' ? "ok 56\n" : "not ok 56\n");
+ print "# x = '@b'\n";
+ print !$def ? "ok 57\n" : "not ok 57\n";
+}
+
+# Bug 19991001.003
+{
+ sub routine { "one", "two" };
+ @a = sort(routine(1));
+ print "@a" eq "one two" ? "ok 58\n" : "not ok 58\n";
+}