diff options
author | zherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2013-04-01 17:04:17 +0000 |
---|---|---|
committer | zherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2013-04-01 17:04:17 +0000 |
commit | f5d0082e0003890add3831d1a6aa1b9d94cc3c51 (patch) | |
tree | 99dce600871d11d26f7d0cff29588df6f0e20c23 /pcre_jit_test.c | |
parent | 2124c9651464dc3c97b9d1cb9a13fe57bca181e4 (diff) | |
download | pcre-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.c | 11 |
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" }, |