1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

test/test_pty.rb: Close fds.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2014-05-29 13:38:39 +00:00
parent b519ce9a8a
commit 6f39cf2d1e

View file

@ -12,19 +12,26 @@ class TestPTY < Test::Unit::TestCase
RUBY = EnvUtil.rubybin RUBY = EnvUtil.rubybin
def test_spawn_without_block def test_spawn_without_block
r, _, pid = PTY.spawn(RUBY, '-e', 'puts "a"') r, w, pid = PTY.spawn(RUBY, '-e', 'puts "a"')
rescue RuntimeError rescue RuntimeError
skip $! skip $!
else else
assert_equal("a\r\n", r.gets) assert_equal("a\r\n", r.gets)
ensure ensure
r.close if r
w.close if w
Process.wait pid if pid Process.wait pid if pid
end end
def test_spawn_with_block def test_spawn_with_block
PTY.spawn(RUBY, '-e', 'puts "b"') {|r,w,pid| PTY.spawn(RUBY, '-e', 'puts "b"') {|r,w,pid|
assert_equal("b\r\n", r.gets) begin
Process.wait(pid) assert_equal("b\r\n", r.gets)
ensure
r.close
w.close
Process.wait(pid)
end
} }
rescue RuntimeError rescue RuntimeError
skip $! skip $!
@ -33,8 +40,13 @@ class TestPTY < Test::Unit::TestCase
def test_commandline def test_commandline
commandline = Shellwords.join([RUBY, '-e', 'puts "foo"']) commandline = Shellwords.join([RUBY, '-e', 'puts "foo"'])
PTY.spawn(commandline) {|r,w,pid| PTY.spawn(commandline) {|r,w,pid|
assert_equal("foo\r\n", r.gets) begin
Process.wait(pid) assert_equal("foo\r\n", r.gets)
ensure
r.close
w.close
Process.wait(pid)
end
} }
rescue RuntimeError rescue RuntimeError
skip $! skip $!
@ -42,8 +54,13 @@ class TestPTY < Test::Unit::TestCase
def test_argv0 def test_argv0
PTY.spawn([RUBY, "argv0"], '-e', 'puts "bar"') {|r,w,pid| PTY.spawn([RUBY, "argv0"], '-e', 'puts "bar"') {|r,w,pid|
assert_equal("bar\r\n", r.gets) begin
Process.wait(pid) assert_equal("bar\r\n", r.gets)
ensure
r.close
w.close
Process.wait(pid)
end
} }
rescue RuntimeError rescue RuntimeError
skip $! skip $!
@ -209,9 +226,14 @@ class TestPTY < Test::Unit::TestCase
assert(s.close_on_exec?) assert(s.close_on_exec?)
} }
PTY.spawn(RUBY, '-e', '') {|r, w, pid| PTY.spawn(RUBY, '-e', '') {|r, w, pid|
assert(r.close_on_exec?) begin
assert(w.close_on_exec?) assert(r.close_on_exec?)
Process.wait(pid) assert(w.close_on_exec?)
ensure
r.close
w.close
Process.wait(pid)
end
} }
rescue RuntimeError rescue RuntimeError
skip $! skip $!