Skip to content

Commit 05aed60

Browse files
committed
Migrate more signatures warn/croak tests to t/lib/*
1 parent f1e500f commit 05aed60

File tree

5 files changed

+37
-44
lines changed

5 files changed

+37
-44
lines changed

MANIFEST

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6198,6 +6198,7 @@ t/lib/warnings/pp_sys Tests for pp_sys.c for warnings.t
61986198
t/lib/warnings/regcomp Tests for regcomp.c for warnings.t
61996199
t/lib/warnings/regexec Tests for regexec.c for warnings.t
62006200
t/lib/warnings/run Tests for run.c for warnings.t
6201+
t/lib/warnings/signatures Tests for signatures-related warnings for warnings.t
62016202
t/lib/warnings/sv Tests for sv.c for warnings.t
62026203
t/lib/warnings/taint Tests for taint.c for warnings.t
62036204
t/lib/warnings/toke Tests for toke.c for warnings.t

t/lib/croak/signatures

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,11 @@ EXPECT
209209
Illegal character following sigil in a subroutine signature at - line 2, near "($"
210210
syntax error at - line 2, near "$$) "
211211
########
212+
# NAME global $_ in signature
213+
sub t101 ($_) { }
214+
EXPECT
215+
Can't use global $_ in subroutine signature at - line 2, near "($_"
216+
########
212217
# NAME global @_ in signature
213218
sub t101 (@_) { }
214219
EXPECT
@@ -218,4 +223,8 @@ Can't use global @_ in subroutine signature at - line 2, near "(@_"
218223
sub t102 (%_) { }
219224
EXPECT
220225
Can't use global %_ in subroutine signature at - line 2, near "(%_"
221-
226+
########
227+
# NAME global $1 in signature
228+
sub t101 ($1) { }
229+
EXPECT
230+
Illegal operator following parameter in a subroutine signature at - line 2, near "($1"

t/lib/warnings/op

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2039,13 +2039,6 @@ sub dont_warn_48 { $a //= return $b; }
20392039
sub dont_warn_49 { $a &&= exit $b; }
20402040
EXPECT
20412041
########
2042-
use feature "signatures";
2043-
sub aaa { 2 }
2044-
sub bbb ($a) { 4 }
2045-
$aaa = sub { 2 };
2046-
$bbb = sub ($a) { 4 };
2047-
EXPECT
2048-
########
20492042
use warnings 'numeric';
20502043
my $c = -4.5;
20512044
my $a = "y" x $c;

t/lib/warnings/signatures

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# PREAMBLE use warnings;
2+
# PREAMBLE use feature 'signatures';
3+
__END__
4+
########
5+
# NAME simple usage does not provoke warnings
6+
sub aaa { 2 }
7+
sub bbb ($a) { 4 }
8+
$aaa = sub { 2 };
9+
$bbb = sub ($a) { 4 };
10+
EXPECT
11+
########
12+
# NAME warnings from default expressions come from the correct line
13+
sub multiline1 (
14+
$a,
15+
$b = $a + 1,
16+
$c = $a + 1)
17+
{
18+
my $d = $a + 1;
19+
my $e = $a + 1;
20+
}
21+
multiline1(undef);
22+
EXPECT
23+
Use of uninitialized value $a in addition (+) at - line 5.
24+
Use of uninitialized value $a in addition (+) at - line 6.
25+
Use of uninitialized value $a in addition (+) at - line 8.
26+
Use of uninitialized value $a in addition (+) at - line 9.

t/op/signatures.t

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1386,42 +1386,6 @@ while(<$kh>) {
13861386
"RT 132760 err 0";
13871387
}
13881388

1389-
# check that warnings come from the correct line
1390-
1391-
{
1392-
my @warn;
1393-
local $SIG{__WARN__} = sub { push @warn, @_};
1394-
eval q{
1395-
sub multiline1 (
1396-
$a,
1397-
$b = $a + 1,
1398-
$c = $a + 1)
1399-
{
1400-
my $d = $a + 1;
1401-
my $e = $a + 1;
1402-
}
1403-
};
1404-
multiline1(undef);
1405-
like $warn[0], qr/line 4,/, 'multiline1: $b';
1406-
like $warn[1], qr/line 5,/, 'multiline1: $c';
1407-
like $warn[2], qr/line 7,/, 'multiline1: $d';
1408-
like $warn[3], qr/line 8,/, 'multiline1: $e';
1409-
}
1410-
1411-
# check errors for using global vars as params
1412-
1413-
{
1414-
eval q{ sub ($_) {} };
1415-
like $@, qr/Can't use global \$_ in subroutine signature/, 'f($_)';
1416-
eval q{ sub (@_) {} };
1417-
like $@, qr/Can't use global \@_ in subroutine signature/, 'f(@_)';
1418-
eval q{ sub (%_) {} };
1419-
like $@, qr/Can't use global \%_ in subroutine signature/, 'f(%_)';
1420-
eval q{ sub ($1) {} };
1421-
like $@, qr/Illegal operator following parameter in a subroutine signature/,
1422-
'f($1)';
1423-
}
1424-
14251389
# check that various uses of @_ inside signatured subs causes "experimental"
14261390
# warnings at compiletime
14271391
{

0 commit comments

Comments
 (0)