d4de0e6f1e
I was über lazy at first, so took libs from SM. But actually it's quite easy to compile, so let's update to latest version \o/.
180 lines
2.7 KiB
Plaintext
180 lines
2.7 KiB
Plaintext
/-- This test is run only when JIT support is available. It checks for a
|
|
successful and an unsuccessful JIT compile and save and restore behaviour,
|
|
and a couple of things that are different with JIT. --/
|
|
|
|
/abc/S+I
|
|
Capturing subpattern count = 0
|
|
No options
|
|
First char = 'a'
|
|
Need char = 'c'
|
|
Subject length lower bound = 3
|
|
No starting char list
|
|
JIT study was successful
|
|
|
|
/(?(?C1)(?=a)a)/S+I
|
|
Capturing subpattern count = 0
|
|
May match empty string
|
|
No options
|
|
No first char
|
|
No need char
|
|
Study returned NULL
|
|
JIT study was not successful
|
|
|
|
/(?(?C1)(?=a)a)/S!+I
|
|
Capturing subpattern count = 0
|
|
May match empty string
|
|
No options
|
|
No first char
|
|
No need char
|
|
Subject length lower bound = -1
|
|
No starting char list
|
|
JIT study was not successful
|
|
|
|
/abc/S+I>testsavedregex
|
|
Capturing subpattern count = 0
|
|
No options
|
|
First char = 'a'
|
|
Need char = 'c'
|
|
Subject length lower bound = 3
|
|
No starting char list
|
|
JIT study was successful
|
|
Compiled pattern written to testsavedregex
|
|
Study data written to testsavedregex
|
|
|
|
<testsavedregex
|
|
Compiled pattern loaded from testsavedregex
|
|
Study data loaded from testsavedregex
|
|
abc
|
|
0: abc
|
|
|
|
/a*/SI
|
|
Capturing subpattern count = 0
|
|
May match empty string
|
|
No options
|
|
No first char
|
|
No need char
|
|
Study returned NULL
|
|
|
|
/(?(R)a*(?1)|((?R))b)/S+
|
|
aaaabcde
|
|
Error -27 (JIT stack limit reached)
|
|
|
|
/-- Test various compile modes --/
|
|
|
|
/abcd/S++
|
|
abcd
|
|
0: abcd (JIT)
|
|
xyz
|
|
No match (JIT)
|
|
|
|
/abcd/S+
|
|
abcd
|
|
0: abcd (JIT)
|
|
ab\P
|
|
Partial match: ab (JIT)
|
|
ab\P\P
|
|
Partial match: ab (JIT)
|
|
xyz
|
|
No match (JIT)
|
|
|
|
/abcd/S++
|
|
abcd
|
|
0: abcd (JIT)
|
|
ab\P
|
|
Partial match: ab (JIT)
|
|
ab\P\P
|
|
Partial match: ab (JIT)
|
|
xyz
|
|
No match (JIT)
|
|
|
|
/abcd/S++1
|
|
abcd
|
|
0: abcd (JIT)
|
|
ab\P
|
|
Partial match: ab
|
|
ab\P\P
|
|
Partial match: ab
|
|
xyz
|
|
No match (JIT)
|
|
xyz\P
|
|
No match
|
|
|
|
/abcd/S++2
|
|
abcd
|
|
0: abcd
|
|
ab\P
|
|
Partial match: ab (JIT)
|
|
ab\P\P
|
|
Partial match: ab
|
|
xyz
|
|
No match
|
|
|
|
/abcd/S++3
|
|
abcd
|
|
0: abcd (JIT)
|
|
ab\P
|
|
Partial match: ab (JIT)
|
|
ab\P\P
|
|
Partial match: ab
|
|
xyz
|
|
No match (JIT)
|
|
|
|
/abcd/S++4
|
|
abcd
|
|
0: abcd
|
|
ab\P
|
|
Partial match: ab
|
|
ab\P\P
|
|
Partial match: ab (JIT)
|
|
xyz
|
|
No match
|
|
|
|
/abcd/S++5
|
|
abcd
|
|
0: abcd (JIT)
|
|
ab\P
|
|
Partial match: ab
|
|
ab\P\P
|
|
Partial match: ab (JIT)
|
|
xyz
|
|
No match (JIT)
|
|
|
|
/abcd/S++6
|
|
abcd
|
|
0: abcd
|
|
ab\P
|
|
Partial match: ab (JIT)
|
|
ab\P\P
|
|
Partial match: ab (JIT)
|
|
xyz
|
|
No match
|
|
|
|
/abcd/S++7
|
|
abcd
|
|
0: abcd (JIT)
|
|
ab\P
|
|
Partial match: ab (JIT)
|
|
ab\P\P
|
|
Partial match: ab (JIT)
|
|
xyz
|
|
No match (JIT)
|
|
|
|
/abcd/S++2I
|
|
Capturing subpattern count = 0
|
|
No options
|
|
First char = 'a'
|
|
Need char = 'd'
|
|
Subject length lower bound = 4
|
|
No starting char list
|
|
JIT study was successful
|
|
|
|
/(*NO_START_OPT)a(*:m)b/KS++
|
|
a
|
|
No match, mark = m (JIT)
|
|
|
|
/^12345678abcd/mS++
|
|
12345678abcd
|
|
0: 12345678abcd (JIT)
|
|
|
|
/-- End of testinput12 --/
|