1: /-- This test is run only when JIT support is available. It checks for a
2: successful and an unsuccessful JIT compile and save and restore behaviour,
3: and a couple of things that are different with JIT. --/
4:
5: /abc/S+I
6: Capturing subpattern count = 0
7: No options
8: First char = 'a'
9: Need char = 'c'
10: Subject length lower bound = 3
11: No set of starting bytes
12: JIT study was successful
13:
14: /ab(*THEN)/S+I
15: Capturing subpattern count = 0
16: No options
17: First char = 'a'
18: Need char = 'b'
19: Subject length lower bound = 2
20: No set of starting bytes
21: JIT study was not successful
22:
23: /abc/S+I>testsavedregex
24: Capturing subpattern count = 0
25: No options
26: First char = 'a'
27: Need char = 'c'
28: Subject length lower bound = 3
29: No set of starting bytes
30: JIT study was successful
31: Compiled pattern written to testsavedregex
32: Study data written to testsavedregex
33:
34: <testsavedregex
35: Compiled pattern loaded from testsavedregex
36: Study data loaded from testsavedregex
37: abc
38: 0: abc
39:
40: /a*/SI
41: Capturing subpattern count = 0
42: No options
43: No first char
44: No need char
45: Study returned NULL
46:
47: /(?(R)a*(?1)|((?R))b)/S+
48: aaaabcde
49: Error -27 (JIT stack limit reached)
50:
51: /-- Test various compile modes --/
52:
53: /abcd/S++
54: abcd
55: 0: abcd (JIT)
56: xyz
57: No match (JIT)
58:
59: /abcd/S+
60: abcd
61: 0: abcd (JIT)
62: ab\P
63: Partial match: ab (JIT)
64: ab\P\P
65: Partial match: ab (JIT)
66: xyz
67: No match (JIT)
68:
69: /abcd/S++
70: abcd
71: 0: abcd (JIT)
72: ab\P
73: Partial match: ab (JIT)
74: ab\P\P
75: Partial match: ab (JIT)
76: xyz
77: No match (JIT)
78:
79: /abcd/S++1
80: abcd
81: 0: abcd (JIT)
82: ab\P
83: Partial match: ab
84: ab\P\P
85: Partial match: ab
86: xyz
87: No match (JIT)
88: xyz\P
89: No match
90:
91: /abcd/S++2
92: abcd
93: 0: abcd
94: ab\P
95: Partial match: ab (JIT)
96: ab\P\P
97: Partial match: ab
98: xyz
99: No match
100:
101: /abcd/S++3
102: abcd
103: 0: abcd (JIT)
104: ab\P
105: Partial match: ab (JIT)
106: ab\P\P
107: Partial match: ab
108: xyz
109: No match (JIT)
110:
111: /abcd/S++4
112: abcd
113: 0: abcd
114: ab\P
115: Partial match: ab
116: ab\P\P
117: Partial match: ab (JIT)
118: xyz
119: No match
120:
121: /abcd/S++5
122: abcd
123: 0: abcd (JIT)
124: ab\P
125: Partial match: ab
126: ab\P\P
127: Partial match: ab (JIT)
128: xyz
129: No match (JIT)
130:
131: /abcd/S++6
132: abcd
133: 0: abcd
134: ab\P
135: Partial match: ab (JIT)
136: ab\P\P
137: Partial match: ab (JIT)
138: xyz
139: No match
140:
141: /abcd/S++7
142: abcd
143: 0: abcd (JIT)
144: ab\P
145: Partial match: ab (JIT)
146: ab\P\P
147: Partial match: ab (JIT)
148: xyz
149: No match (JIT)
150:
151: /(*NO_START_OPT)a(*:m)b/KS++
152: a
153: No match, mark = m (JIT)
154:
155: /-- End of testinput12 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>