summaryrefslogtreecommitdiff
path: root/t/lib/warnings/regcomp
blob: 51ad57ccbe3a319b26e3a12a5f542c30378e5f9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
  regcomp.c	These tests have been moved to t/re/reg_mesg.t
		except for those that explicitly test line numbers
                and those that don't have a <-- HERE in them, and those that
                die plus have warnings, or otherwise require special handling

__END__
use warnings 'regexp';
$r=qr/(??{ q"\\b+" })/;
"a" =~ /a$r/; # warning should come from this line
EXPECT
\b+ matches null string many times in regex; marked by <-- HERE in m/\b+ <-- HERE / at - line 3.
########
# regcomp.c
use warnings 'digit' ;
my $a = qr/\o{1238456}\x{100}/;
my $a = qr/[\o{6548321}]\x{100}/;
no warnings 'digit' ;
my $a = qr/\o{1238456}\x{100}/;
my $a = qr/[\o{6548321}]\x{100}/;
EXPECT
Non-octal character '8'.  Resolved as "\o{123}" at - line 3.
Non-octal character '8'.  Resolved as "\o{654}" at - line 4.
########
# regcomp.c
BEGIN {
    if (ord('A') == 193) {
        print "SKIPPED\n# Different results on EBCDIC";
        exit 0;
    }
}
use warnings;
$a = qr/\c,/;
$a = qr/[\c,]/;
no warnings 'syntax';
$a = qr/\c,/;
$a = qr/[\c,]/;
EXPECT
"\c," is more clearly written simply as "l" at - line 9.
"\c," is more clearly written simply as "l" at - line 10.
########
# This is because currently a different error is output under
# use re 'strict', so can't go in reg_mesg.t
# NAME perl #126261, error message causes segfault
# OPTION fatal
 qr/abc[\x{df}[.00./i
EXPECT
Unmatched [ in regex; marked by <-- HERE in m/abc[ <-- HERE \x{df}[.00./ at - line 4.
########
# NAME perl #126261, with 'use utf8'
# OPTION fatal
use utf8;
no warnings 'utf8';
qr/abc[fi[.00./i;
EXPECT
Unmatched [ in regex; marked by <-- HERE in m/abc[ <-- HERE fi[.00./ at - line 4.
########
# NAME perl qr/(?[[[:word]]])/ XXX Why is 'syntax' lc?
# OPTION fatal
qr/(?[[[:word]]])/;
EXPECT
Assuming NOT a POSIX class since there is no terminating ':' in regex; marked by <-- HERE in m/(?[[[:word <-- HERE ]]])/ at - line 2.
Unexpected ']' with no following ')' in (?[... in regex; marked by <-- HERE in m/(?[[[:word]] <-- HERE ])/ at - line 2.
########
# NAME qr/(?[ [[:digit: ])/
# OPTION fatal
qr/(?[[[:digit: ])/;
EXPECT
Assuming NOT a POSIX class since no blanks are allowed in one in regex; marked by <-- HERE in m/(?[[[:digit: ] <-- HERE )/ at - line 2.
syntax error in (?[...]) in regex; marked by <-- HERE in m/(?[[[:digit: ]) <-- HERE / at - line 2.
########
# NAME qr/(?[ [:digit: ])/
# OPTION fatal
qr/(?[[:digit: ])/
EXPECT
Assuming NOT a POSIX class since no blanks are allowed in one in regex; marked by <-- HERE in m/(?[[:digit: ] <-- HERE )/ at - line 2.
syntax error in (?[...]) in regex; marked by <-- HERE in m/(?[[:digit: ]) <-- HERE / at - line 2.
########
# NAME [perl #126141]
# OPTION fatal
eval {/$_/}, print "$_ ==> ", $@ || "OK!\n" for "]]]]]]]]][\\", "]]]]][\\"
EXPECT
]]]]]]]]][\ ==> Unmatched [ in regex; marked by <-- HERE in m/]]]]]]]]][\ <-- HERE / at - line 2.
]]]]][\ ==> Unmatched [ in regex; marked by <-- HERE in m/]]]]][\ <-- HERE / at - line 2.
########
# NAME [perl #123417]
use warnings 'regexp';
qr/[\N{}]/;
qr/\N{}/;
no warnings 'regexp';
qr/[\N{}]/;
qr/\N{}/;
no warnings 'deprecated';
qr/[\N{}]/;
qr/\N{}/;
EXPECT
Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28 at - line 2.
Ignoring zero length \N{} in character class in regex; marked by <-- HERE in m/[\N{} <-- HERE ]/ at - line 2.
Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28 at - line 3.
Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28 at - line 5.
Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28 at - line 6.
########
# NAME [perl #123417]
# OPTION fatal
use warnings 'regexp';
no warnings 'experimental::re_strict';
use re 'strict';
qr/[\N{}]/;
EXPECT
Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28 at - line 5.
Zero length \N{} in regex; marked by <-- HERE in m/[\N{} <-- HERE ]/ at - line 5.
########
# NAME [perl #123417]
# OPTION fatal
use warnings 'regexp';
no warnings 'experimental::re_strict';
use re 'strict';
qr/\N{}/;
EXPECT
Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28 at - line 5.
Zero length \N{} in regex; marked by <-- HERE in m/\N{} <-- HERE / at - line 5.