From: Kouhei S. <nu...@co...> - 2017-10-16 00:02:05
|
Kouhei Sutou 2017-10-16 09:01:18 +0900 (Mon, 16 Oct 2017) New Revision: 712acd62513b82c852369dcc7610c7f34eacc532 https://github.com/ruby-gnome2/ruby-gnome2/commit/712acd62513b82c852369dcc7610c7f34eacc532 Message: vte3 test: ensuring waiting child process is exitted Modified files: vte3/test/test-terminal.rb Modified: vte3/test/test-terminal.rb (+17 -5) =================================================================== --- vte3/test/test-terminal.rb 2017-10-16 00:08:04 +0900 (efd5dd169) +++ vte3/test/test-terminal.rb 2017-10-16 09:01:18 +0900 (4356f12f2) @@ -28,17 +28,28 @@ class TestTerminal < Test::Unit::TestCase end sub_test_case "#spawn" do + setup do + @loop = GLib::MainLoop.new + @wait_child_exited = false + @child_exit_callback_id = @terminal.signal_connect("child-exited") do + @loop.quit + end + end + teardown do - loop = GLib::MainLoop.new - GLib::Idle.add do - loop.quit - GLib::Source::REMOVE + unless @wait_child_exited + GLib::Idle.add do + @loop.quit + GLib::Source::REMOVE + end end - loop.run + @loop.run + @terminal.signal_handler_disconnect(@child_exit_callback_id) end test "success" do pid = @terminal.spawn(:argv => ["echo"]) + @wait_child_exited = true assert do pid > 0 end @@ -47,6 +58,7 @@ class TestTerminal < Test::Unit::TestCase test "failure" do assert_raise(GLib::SpawnError) do @terminal.spawn(:argv => ["nonexistent"]) + @wait_child_exited = true end end end |