From 859a767f481defabe43d1ead17f984a9734ddd4d Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Tue, 9 Nov 2021 14:48:10 +0900 Subject: [PATCH] test/readline/test_readline.rb: skip a test on i686-linux ... because readline library (or libtinfo) seems to cause SEGV internally even with Readline 8.1. This SEGV is caught as SystemStackError, which leads to a test failure. http://rubyci.s3.amazonaws.com/debian-i386/ruby-master/log/20211109T030008Z.fail.html.gz ``` 1) Failure: TestReadline#test_interrupt_in_other_thread [/home/chkbuild/chkbuild/tmp/build/20211109T030008Z/ruby/test/readline/test_readline.rb:568]: Unknown failure with exit status pid 13097 exit 1 Log: ** START **Readline::VERSION is 8.1. /home/chkbuild/chkbuild/tmp/build/20211109T030008Z/tmp/interrupt_in_other_thread20211109-6272-kcfqxo:13:in `readline': stack level too deep (SystemStackError) from /home/chkbuild/chkbuild/tmp/build/20211109T030008Z/tmp/interrupt_in_other_thread20211109-6272-kcfqxo:13:in `block in
' /home/chkbuild/chkbuild/tmp/build/20211109T030008Z/tmp/interrupt_in_other_thread20211109-6272-kcfqxo:13:in `readline': stack level too deep (SystemStackError) from /home/chkbuild/chkbuild/tmp/build/20211109T030008Z/tmp/interrupt_in_other_thread20211109-6272-kcfqxo:13:in `block in
' ``` --- test/readline/test_readline.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/readline/test_readline.rb b/test/readline/test_readline.rb index b6f115a9e1..2947dd7229 100644 --- a/test/readline/test_readline.rb +++ b/test/readline/test_readline.rb @@ -488,6 +488,12 @@ def test_interrupt_in_other_thread omit "Skip Readline 7.0" if Readline::VERSION == "7.0" omit unless respond_to?(:assert_ruby_status) omit if /mswin|mingw/ =~ RUBY_PLATFORM + + # On 32-bit machine, readline library (or libtinfo) seems to cause SEGV internally even with Readline 8.0 + # GDB Backtrace: https://gist.github.com/mame/d12b9de3bbc3f16d440c1927398d176a + # Maybe the same issue: https://github.com/facebookresearch/nle/issues/120 + omit if /i[3-6]86-linux/ =~ RUBY_PLATFORM + if defined?(TestReadline) && self.class == TestReadline use = "use_ext_readline" elsif defined?(TestRelineAsReadline) && self.class == TestRelineAsReadline