summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2021-08-09 14:49:52 +1200
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2021-08-09 17:03:33 +1200
commit6f6a84f2f3e82f9554618f080f9b66ded52884cc (patch)
treea5a03ffc47d32d761501bcd9b3f7cd812fd8a835 /test
parent6736323194e6cfd417468375669211c03d43d13e (diff)
Extended logging for debugging readline failures.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/4722
Diffstat (limited to 'test')
-rw-r--r--test/readline/test_readline.rb11
1 files changed, 7 insertions, 4 deletions
diff --git a/test/readline/test_readline.rb b/test/readline/test_readline.rb
index 3678f5b942..5d76f14e69 100644
--- a/test/readline/test_readline.rb
+++ b/test/readline/test_readline.rb
@@ -496,7 +496,8 @@ module BasetestReadline
begin
Thread.new{
trap(:INT) {
- p :INT
+ puts 'TRAP'
+ $stdout.flush
}
Readline.readline('input> ')
exit!(0) # Cause the process to exit immediately.
@@ -520,13 +521,15 @@ module BasetestReadline
log << c if c
break if log.include?('input>')
end
+ log << "** SIGINT **"
Process.kill(:INT, pid)
sleep 0.1
while c = _out.read(1)
log << c if c
- break if log.include?('INT')
+ break if log.include?('TRAP')
end
begin
+ log << "** NEWLINE **"
_in.write "\n"
rescue Errno::EPIPE
# The "write" will fail if Reline crashed by SIGINT.
@@ -540,8 +543,8 @@ module BasetestReadline
assert false, "Should handle SIGINT correctly but exited successfully.\nLog: #{log}\n----"
end
end
- rescue Timeout::Error
- assert false, "Timed out to handle SIGINT!\nLog: #{log}\n----"
+ rescue Timeout::Error => e
+ assert false, "Timed out to handle SIGINT!\nLog: #{log}\nBacktrace:\n#{e.full_message(highlight: false)}\n----"
end
ensure
status = Process.wait2(pid).last