• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# These are:
2#
3# (1) Tests of the match-limiting features. The results are different for
4# interpretive or JIT matching, so this test should not be run with JIT. The
5# same tests are run using JIT in test 17.
6
7# (2) Other tests that must not be run with JIT.
8
9/(a+)*zz/I
10  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\=find_limits
11  aaaaaaaaaaaaaz\=find_limits
12
13!((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)!I
14   /* this is a C style comment */\=find_limits
15
16/^(?>a)++/
17    aa\=find_limits
18    aaaaaaaaa\=find_limits
19
20/(a)(?1)++/
21    aa\=find_limits
22    aaaaaaaaa\=find_limits
23
24/a(?:.)*?a/ims
25    abbbbbbbbbbbbbbbbbbbbba\=find_limits
26
27/a(?:.(*THEN))*?a/ims
28    abbbbbbbbbbbbbbbbbbbbba\=find_limits
29
30/a(?:.(*THEN:ABC))*?a/ims
31    abbbbbbbbbbbbbbbbbbbbba\=find_limits
32
33/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
34     aabbccddee\=find_limits
35
36/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
37     aabbccddee\=find_limits
38
39/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
40     aabbccddee\=find_limits
41
42/(*LIMIT_MATCH=12bc)abc/
43
44/(*LIMIT_MATCH=4294967290)abc/
45
46/(*LIMIT_RECURSION=4294967280)abc/I
47
48/(a+)*zz/
49    aaaaaaaaaaaaaz
50    aaaaaaaaaaaaaz\=match_limit=3000
51
52/(a+)*zz/
53    aaaaaaaaaaaaaz\=recursion_limit=10
54
55/(*LIMIT_MATCH=3000)(a+)*zz/I
56    aaaaaaaaaaaaaz
57    aaaaaaaaaaaaaz\=match_limit=60000
58
59/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
60    aaaaaaaaaaaaaz
61
62/(*LIMIT_MATCH=60000)(a+)*zz/I
63    aaaaaaaaaaaaaz
64    aaaaaaaaaaaaaz\=match_limit=3000
65
66/(*LIMIT_RECURSION=10)(a+)*zz/I
67    aaaaaaaaaaaaaz
68    aaaaaaaaaaaaaz\=recursion_limit=1000
69
70/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/I
71    aaaaaaaaaaaaaz
72
73/(*LIMIT_RECURSION=1000)(a+)*zz/I
74    aaaaaaaaaaaaaz
75    aaaaaaaaaaaaaz\=recursion_limit=10
76
77# These three have infinitely nested recursions.
78
79/((?2))((?1))/
80    abc
81
82/((?(R2)a+|(?1)b))/
83    aaaabcde
84
85/(?(R)a*(?1)|((?R))b)/
86    aaaabcde
87
88# The allusedtext modifier does not work with JIT, which does not maintain
89# the leftchar/rightchar data.
90
91/abc(?=xyz)/allusedtext
92    abcxyzpqr
93    abcxyzpqr\=aftertext
94
95/(?<=pqr)abc(?=xyz)/allusedtext
96    xyzpqrabcxyzpqr
97    xyzpqrabcxyzpqr\=aftertext
98
99/a\b/
100    a.\=allusedtext
101    a\=allusedtext
102
103/abc\Kxyz/
104    abcxyz\=allusedtext
105
106/abc(?=xyz(*ACCEPT))/
107    abcxyz\=allusedtext
108
109/abc(?=abcde)(?=ab)/allusedtext
110    abcabcdefg
111
112# These tests provoke recursion loops, which give a different error message
113# when JIT is used.
114
115/(?R)/I
116    abcd
117
118/(a|(?R))/I
119    abcd
120    defg
121
122/(ab|(bc|(de|(?R))))/I
123    abcd
124    fghi
125
126/(ab|(bc|(de|(?1))))/I
127    abcd
128    fghi
129
130/x(ab|(bc|(de|(?1)x)x)x)/I
131    xab123
132    xfghi
133
134/(?!\w)(?R)/
135    abcd
136    =abc
137
138/(?=\w)(?R)/
139    =abc
140    abcd
141
142/(?<!\w)(?R)/
143    abcd
144
145/(?<=\w)(?R)/
146    abcd
147
148/(a+|(?R)b)/
149    aaa
150    bbb
151
152/[^\xff]((?1))/BI
153    abcd
154
155# These tests don't behave the same with JIT
156
157/\w+(?C1)/BI,no_auto_possess
158    abc\=callout_fail=1
159
160/(*NO_AUTO_POSSESS)\w+(?C1)/BI
161    abc\=callout_fail=1
162
163# End of testinput15
164