diff options
author | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2021-08-09 14:49:52 +1200 |
---|---|---|
committer | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2021-08-09 17:03:33 +1200 |
commit | 6f6a84f2f3e82f9554618f080f9b66ded52884cc (patch) | |
tree | a5a03ffc47d32d761501bcd9b3f7cd812fd8a835 /test/readline/test_readline.rb | |
parent | 6736323194e6cfd417468375669211c03d43d13e (diff) | |
download | ruby-6f6a84f2f3e82f9554618f080f9b66ded52884cc.tar.gz |
Extended logging for debugging readline failures.
Diffstat (limited to 'test/readline/test_readline.rb')
-rw-r--r-- | test/readline/test_readline.rb | 11 |
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 |