[ruby/io-console] Timeout in the child process

https://github.com/ruby/io-console/commit/b8411689a5
This commit is contained in:
Nobuyoshi Nakada 2019-12-17 18:20:37 +09:00
Родитель 4b7d27ca0d
Коммит 905a926ea8
1 изменённых файлов: 3 добавлений и 2 удалений

Просмотреть файл

@ -330,6 +330,7 @@ defined?(PTY) and defined?(IO.console) and TestIO_Console.class_eval do
def test_intr
run_pty("#{<<~"begin;"}\n#{<<~'end;'}") do |r, w, _|
begin;
require 'timeout'
STDOUT.puts `stty -a`.scan(/\b\w+ *= *\^.;/), ""
STDOUT.flush
con = IO.console
@ -337,8 +338,8 @@ defined?(PTY) and defined?(IO.console) and TestIO_Console.class_eval do
p c.ord
p con.getch(intr: false).ord
begin
p con.getch(intr: true).ord
rescue Interrupt => e
p Timeout.timeout(1) {con.getch(intr: true)}.ord
rescue Timeout::Error, Interrupt => e
p e
end
end