summaryrefslogtreecommitdiff
path: root/pcre_jit_test.c
diff options
context:
space:
mode:
authorzherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>2013-04-01 17:04:17 +0000
committerzherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>2013-04-01 17:04:17 +0000
commitf5d0082e0003890add3831d1a6aa1b9d94cc3c51 (patch)
tree99dce600871d11d26f7d0cff29588df6f0e20c23 /pcre_jit_test.c
parent2124c9651464dc3c97b9d1cb9a13fe57bca181e4 (diff)
downloadpcre-f5d0082e0003890add3831d1a6aa1b9d94cc3c51.tar.gz
Auto-detect and optimize limited repetitions in JIT.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1306 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'pcre_jit_test.c')
-rw-r--r--pcre_jit_test.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/pcre_jit_test.c b/pcre_jit_test.c
index 1860323..c8daffb 100644
--- a/pcre_jit_test.c
+++ b/pcre_jit_test.c
@@ -308,6 +308,17 @@ static struct regression_test_case regression_test_cases[] = {
{ MUA, 0, "[^\xe1\xbd\xb8][^\xc3\xa9]", "\xe1\xbd\xb8\xe1\xbf\xb8\xc3\xa9\xc3\x89#" },
{ MUA, 0, "[^\xe1\xbd\xb8]{3,}?", "##\xe1\xbd\xb8#\xe1\xbd\xb8#\xc3\x89#\xe1\xbd\xb8" },
+ /* Bracket repeats with limit. */
+ { MUA, 0, "(?:(ab){2}){5}M", "abababababababababababM" },
+ { MUA, 0, "(?:ab|abab){1,5}M", "abababababababababababM" },
+ { MUA, 0, "(?>ab|abab){1,5}M", "abababababababababababM" },
+ { MUA, 0, "(?:ab|abab){1,5}?M", "abababababababababababM" },
+ { MUA, 0, "(?>ab|abab){1,5}?M", "abababababababababababM" },
+ { MUA, 0, "(?:(ab){1,4}?){1,3}?M", "abababababababababababababM" },
+ { MUA, 0, "(?:(ab){1,4}){1,3}abababababababababababM", "ababababababababababababM" },
+ { MUA, 0 | F_NOMATCH, "(?:(ab){1,4}){1,3}abababababababababababM", "abababababababababababM" },
+ { MUA, 0, "(ab){4,6}?M", "abababababababM" },
+
/* Basic character sets. */
{ MUA, 0, "(?:\\s)+(?:\\S)+", "ab \t\xc3\xa9\xe6\x92\xad " },
{ MUA, 0, "(\\w)*(k)(\\W)?\?", "abcdef abck11" },