summaryrefslogtreecommitdiff
path: root/etc/simple_regexp_scanner.rb
diff options
context:
space:
mode:
Diffstat (limited to 'etc/simple_regexp_scanner.rb')
-rw-r--r--etc/simple_regexp_scanner.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/etc/simple_regexp_scanner.rb b/etc/simple_regexp_scanner.rb
index 6e1d098..e89460e 100644
--- a/etc/simple_regexp_scanner.rb
+++ b/etc/simple_regexp_scanner.rb
@@ -91,6 +91,17 @@ class SimpleRegexpScannerTest < Test::Unit::TestCase
assert_scans_list '(A(B(C|D))?)?', ['ABC', 'ABD', 'A', '']
end
+ def test_deep_recusion
+ n = 1_000
+ assert_nothing_raised do
+ assert_scans_list '(' * n + ')' * n, ['']
+ end
+ n = 10_000
+ assert_raise SystemStackError do
+ assert_scans_list '(' * n + ')' * n, ['']
+ end
+ end
+
JAVA_BUILTIN_TYPES = <<-TYPES.delete(" \n")
(R(GBImageFilter|MI(S(ocketFactory|e(curity(Manager|Exception)|rver(SocketFactor
y|Impl(_Stub)?)?))|C(onnect(ion(Impl(_Stub)?)?|or(Server)?)|l(ientSocketFactory|