2022-08-18 02:57:45 -04:00
|
|
|
# Test overflow in re.compile output code.
|
2021-03-27 20:19:51 -04:00
|
|
|
|
|
|
|
try:
|
2022-08-18 02:57:45 -04:00
|
|
|
import re
|
2021-03-27 20:19:51 -04:00
|
|
|
except ImportError:
|
|
|
|
print("SKIP")
|
|
|
|
raise SystemExit
|
|
|
|
|
|
|
|
|
|
|
|
def test_re(r):
|
|
|
|
try:
|
|
|
|
re.compile(r)
|
|
|
|
except:
|
|
|
|
print("Error")
|
|
|
|
|
|
|
|
|
|
|
|
# too many chars in []
|
|
|
|
test_re("[" + "a" * 256 + "]")
|
|
|
|
|
|
|
|
# too many groups
|
|
|
|
test_re("(a)" * 256)
|
|
|
|
|
|
|
|
# jump too big for ?
|
|
|
|
test_re("(" + "a" * 62 + ")?")
|
|
|
|
|
|
|
|
# jump too big for *
|
|
|
|
test_re("(" + "a" * 60 + ".)*")
|
|
|
|
test_re("(" + "a" * 60 + "..)*")
|
|
|
|
|
|
|
|
# jump too big for +
|
|
|
|
test_re("(" + "a" * 62 + ")+")
|
|
|
|
|
|
|
|
# jump too big for |
|
|
|
|
test_re("b" * 63 + "|a")
|