1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

regex: added default support for long queries (#12635)

This commit is contained in:
penguindark
2021-12-01 07:38:50 +01:00
committed by GitHub
parent f86710dcc7
commit 519ca90cfa
3 changed files with 48 additions and 8 deletions

View File

@@ -1,5 +1,6 @@
import regex
import rand
import strings
/******************************************************************************
*
@@ -720,3 +721,42 @@ fn test_errors(){
}
assert count == err_query_list.len
}
fn test_long_query() {
test_len := 32768
mut buf := strings.new_builder(test_len * 3)
base_string := rand.string(test_len)
for c in base_string {
buf.write_b(`(`)
buf.write_b(c)
buf.write_b(`)`)
}
mut query := buf.str()
//println(base_string)
//println(buf.str())
// test 1
mut re := regex.regex_opt(query) or { panic(err) }
mut start, mut end := re.match_string(base_string)
//println("$start, $end")
assert start >= 0 && end == base_string.len
// test 2
buf.clear()
for c in base_string {
buf.write_b(`(`)
buf.write_b(c)
}
for _ in 0..base_string.len {
buf.write_b(`)`)
}
query = buf.str()
re = regex.regex_opt(query) or { panic(err) }
start, end = re.match_string(base_string)
//println("$start, $end")
assert start >= 0 && end == base_string.len
}