* test/ruby/test_optimization.rb (test_tailcall_interrupted_by_sigint):

send SIGKILL if the child process doesn't die within 1 second.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shugo 2016-11-06 14:41:39 +00:00
Родитель 76e047a843
Коммит 90bf4a8edb
2 изменённых файлов: 20 добавлений и 3 удалений

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

@ -1,3 +1,8 @@
Sun Nov 6 23:36:07 2016 Shugo Maeda <shugo@ruby-lang.org>
* test/ruby/test_optimization.rb (test_tailcall_interrupted_by_sigint):
send SIGKILL if the child process doesn't die within 1 second.
Sun Nov 6 21:54:28 2016 NARUSE, Yui <naruse@ruby-lang.org>
* tool/vcs.rb (export_changelog): generate ChangeLog file from

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

@ -338,9 +338,21 @@ EOS
in_p.write(script)
in_p.close
out_p.gets
Process.kill(:SIGINT, pid)
*, stat = Process.wait2(pid)
[stat, err_p.read]
sig = :INT
begin
Process.kill(sig, pid)
Timeout.timeout(1) do
*, stat = Process.wait2(pid)
[stat, err_p.read]
end
rescue Timeout::Error
if sig == :INT
sig = :KILL
retry
else
raise
end
end
}
assert_equal("INT", Signal.signame(status.termsig))
assert_match(/Interrupt/, err, bug)