summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xt/comp/proto.t3
-rwxr-xr-xt/op/lex_assign.t1
-rwxr-xr-xt/op/local.t3
-rwxr-xr-xt/op/pat.t3
-rwxr-xr-xt/op/regexp.t3
-rw-r--r--t/pragma/strict-vars6
-rw-r--r--t/pragma/warn/op2
-rw-r--r--t/pragma/warn/regcomp6
-rw-r--r--t/pragma/warn/toke46
-rw-r--r--t/pragma/warnings.t1
10 files changed, 49 insertions, 25 deletions
diff --git a/t/comp/proto.t b/t/comp/proto.t
index 5fce52685a..22428570a7 100755
--- a/t/comp/proto.t
+++ b/t/comp/proto.t
@@ -9,6 +9,9 @@
# we should test as many as we can.
#
+# XXX known to leak scalars
+$ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
+
BEGIN {
chdir 't' if -d 't';
@INC = '../lib';
diff --git a/t/op/lex_assign.t b/t/op/lex_assign.t
index d761f73ce7..ee74d93478 100755
--- a/t/op/lex_assign.t
+++ b/t/op/lex_assign.t
@@ -4,6 +4,7 @@ BEGIN {
chdir 't' if -d 't';
@INC = '../lib';
}
+$ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
umask 0;
$xref = \ "";
diff --git a/t/op/local.t b/t/op/local.t
index 9f977b2cd4..781afa5b35 100755
--- a/t/op/local.t
+++ b/t/op/local.t
@@ -2,6 +2,9 @@
print "1..71\n";
+# XXX known to leak scalars
+$ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
+
sub foo {
local($a, $b) = @_;
local($c, $d);
diff --git a/t/op/pat.t b/t/op/pat.t
index 293e74869e..a82da60e72 100755
--- a/t/op/pat.t
+++ b/t/op/pat.t
@@ -12,6 +12,9 @@ BEGIN {
}
eval 'use Config'; # Defaults assumed if this fails
+# XXX known to leak scalars
+$ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
+
$x = "abc\ndef\n";
if ($x =~ /^abc/) {print "ok 1\n";} else {print "not ok 1\n";}
diff --git a/t/op/regexp.t b/t/op/regexp.t
index 4a4d42fd98..7fbfc97342 100755
--- a/t/op/regexp.t
+++ b/t/op/regexp.t
@@ -1,5 +1,8 @@
#!./perl
+# XXX known to leak scalars
+$ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
+
# The tests are in a separate file 't/op/re_tests'.
# Each line in that file is a separate test.
# There are five columns, separated by tabs.
diff --git a/t/pragma/strict-vars b/t/pragma/strict-vars
index 40b55572b8..5ba579d969 100644
--- a/t/pragma/strict-vars
+++ b/t/pragma/strict-vars
@@ -151,6 +151,8 @@ $d = 1;$i = 1;$n = 1;
$e = 1;$j = 1;$o = 1;
$p = 0b12;
--FILE--
+# known scalar leak
+BEGIN { $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3; }
use abc;
EXPECT
Global symbol "$f" requires explicit package name at abc.pm line 3.
@@ -169,8 +171,8 @@ Global symbol "$o" requires explicit package name at abc.pm line 7.
Global symbol "$p" requires explicit package name at abc.pm line 8.
Illegal binary digit '2' at abc.pm line 8, at end of line
abc.pm has too many errors.
-Compilation failed in require at - line 1.
-BEGIN failed--compilation aborted at - line 1.
+Compilation failed in require at - line 3.
+BEGIN failed--compilation aborted at - line 3.
########
# Check scope of pragma with eval
diff --git a/t/pragma/warn/op b/t/pragma/warn/op
index f3c0548e57..de326f8b0c 100644
--- a/t/pragma/warn/op
+++ b/t/pragma/warn/op
@@ -569,7 +569,7 @@ Useless use of a constant in void context at - line 3.
Useless use of a constant in void context at - line 4.
########
# op.c
-#
+BEGIN{ $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3; } # known scalar leak
use warnings 'misc' ;
my $a ; my @a = () ; my %a = () ; my $b = \@a ; my $c = \%a ;
@a =~ /abc/ ;
diff --git a/t/pragma/warn/regcomp b/t/pragma/warn/regcomp
index 8b86b5082f..59076d5f3b 100644
--- a/t/pragma/warn/regcomp
+++ b/t/pragma/warn/regcomp
@@ -50,7 +50,7 @@ EXPECT
Unrecognized escape \m passed through before HERE mark in regex m/a\m << HERE / at - line 4.
########
# regcomp.c [S_regpposixcc S_checkposixcc]
-#
+BEGIN { $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3 }
use warnings 'regexp' ;
$_ = "" ;
/[:alpha:]/;
@@ -66,7 +66,7 @@ POSIX syntax [: :] belongs inside character classes before HERE mark in regex m/
POSIX class [:zog:] unknown before HERE mark in regex m/[[:zog:] << HERE ]/
########
# regcomp.c [S_checkposixcc]
-#
+BEGIN { $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3 }
use warnings 'regexp' ;
$_ = "" ;
/[.zog.]/;
@@ -77,7 +77,7 @@ POSIX syntax [. .] belongs inside character classes before HERE mark in regex m/
POSIX syntax [. .] is reserved for future extensions before HERE mark in regex m/[.zog.] << HERE /
########
# regcomp.c [S_checkposixcc]
-#
+BEGIN { $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3 }
use warnings 'regexp' ;
$_ = "" ;
/[[.zog.]]/;
diff --git a/t/pragma/warn/toke b/t/pragma/warn/toke
index 4924bb2dff..2c9433bd7d 100644
--- a/t/pragma/warn/toke
+++ b/t/pragma/warn/toke
@@ -169,6 +169,10 @@ EXPECT
Semicolon seems to be missing at - line 3.
########
# toke.c
+BEGIN {
+ # Scalars leaked: due to syntax errors
+ $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
+}
use warnings 'syntax' ;
my $a =+ 2 ;
$a =- 2 ;
@@ -181,21 +185,25 @@ $a =| 2 ;
$a =< 2 ;
$a =/ 2 ;
EXPECT
-Reversed += operator at - line 3.
-Reversed -= operator at - line 4.
-Reversed *= operator at - line 5.
-Reversed %= operator at - line 6.
-Reversed &= operator at - line 7.
-Reversed .= operator at - line 8.
-Reversed ^= operator at - line 9.
-Reversed |= operator at - line 10.
-Reversed <= operator at - line 11.
-syntax error at - line 8, near "=."
-syntax error at - line 9, near "=^"
-syntax error at - line 10, near "=|"
-Unterminated <> operator at - line 11.
-########
-# toke.c
+Reversed += operator at - line 7.
+Reversed -= operator at - line 8.
+Reversed *= operator at - line 9.
+Reversed %= operator at - line 10.
+Reversed &= operator at - line 11.
+Reversed .= operator at - line 12.
+Reversed ^= operator at - line 13.
+Reversed |= operator at - line 14.
+Reversed <= operator at - line 15.
+syntax error at - line 12, near "=."
+syntax error at - line 13, near "=^"
+syntax error at - line 14, near "=|"
+Unterminated <> operator at - line 15.
+########
+# toke.c
+BEGIN {
+ # Scalars leaked: due to syntax errors
+ $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
+}
no warnings 'syntax' ;
my $a =+ 2 ;
$a =- 2 ;
@@ -208,10 +216,10 @@ $a =| 2 ;
$a =< 2 ;
$a =/ 2 ;
EXPECT
-syntax error at - line 8, near "=."
-syntax error at - line 9, near "=^"
-syntax error at - line 10, near "=|"
-Unterminated <> operator at - line 11.
+syntax error at - line 12, near "=."
+syntax error at - line 13, near "=^"
+syntax error at - line 14, near "=|"
+Unterminated <> operator at - line 15.
########
# toke.c
use warnings 'syntax' ;
diff --git a/t/pragma/warnings.t b/t/pragma/warnings.t
index e2c7500582..872e6e1417 100644
--- a/t/pragma/warnings.t
+++ b/t/pragma/warnings.t
@@ -5,6 +5,7 @@ BEGIN {
@INC = '../lib';
$ENV{PERL5LIB} = '../lib';
require Config; import Config;
+ $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
}
$| = 1;