summaryrefslogtreecommitdiff
path: root/system/ruby/test_insns-lower-recursion-depth.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/ruby/test_insns-lower-recursion-depth.patch')
-rw-r--r--system/ruby/test_insns-lower-recursion-depth.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/system/ruby/test_insns-lower-recursion-depth.patch b/system/ruby/test_insns-lower-recursion-depth.patch
new file mode 100644
index 000000000..48e88dfd6
--- /dev/null
+++ b/system/ruby/test_insns-lower-recursion-depth.patch
@@ -0,0 +1,47 @@
+The patched test is a recursion function. We have lower stack size,
+so we hit SystemStackError sooner than on other platforms.
+
+ #361 test_insns.rb:389:in `block in <top (required)>':
+ # recursive once
+ def once n
+ return %r/#{
+ if n == 0
+ true
+ else
+ once(n-1) # here
+ end
+ }/ox
+ end
+ x = once(128); x = once(7); x = once(16);
+ x =~ "true" && $~
+ #=> "" (expected "true") once
+ Stderr output is not empty
+ bootstraptest.tmp.rb:3:in `once': stack level too deep (SystemStackError)
+ from bootstraptest.tmp.rb:7:in `block in once'
+ from bootstraptest.tmp.rb:3:in `once'
+ from bootstraptest.tmp.rb:7:in `block in once'
+ from bootstraptest.tmp.rb:3:in `once'
+ from bootstraptest.tmp.rb:7:in `block in once'
+ from bootstraptest.tmp.rb:3:in `once'
+ from bootstraptest.tmp.rb:7:in `block in once'
+ from bootstraptest.tmp.rb:3:in `once'
+ ... 125 levels...
+ from bootstraptest.tmp.rb:3:in `once'
+ from bootstraptest.tmp.rb:7:in `block in once'
+ from bootstraptest.tmp.rb:3:in `once'
+ from bootstraptest.tmp.rb:11:in `<main>'
+ Test_insns.rb FAIL 1/187
+ FAIL 1/1197 tests failed
+ Make: *** [uncommon.mk:666: yes-btest-ruby] Error 1
+
+--- a/bootstraptest/test_insns.rb
++++ b/bootstraptest/test_insns.rb
+@@ -248,7 +248,7 @@
+ end
+ }/ox
+ end
+- x = once(128); x = once(7); x = once(16);
++ x = once(32); x = once(7); x = once(16);
+ x =~ "true" && $~
+ },
+ [ 'once', <<~'},', ], # {