diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-12-15 15:36:26 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-12-15 15:36:26 +0000 |
commit | ca4798c4c30ce49e3491d4bd4966a9d4759c7760 (patch) | |
tree | abded374ba907cb11295f53ecb67aad6ab2c9582 /test/test_pty.rb | |
parent | 13919e068b6f57249e3d178657e2ea877b2ffd23 (diff) |
add tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/test_pty.rb')
-rw-r--r-- | test/test_pty.rb | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/test_pty.rb b/test/test_pty.rb index bbf85a3d33..684ab2c01b 100644 --- a/test/test_pty.rb +++ b/test/test_pty.rb @@ -38,5 +38,65 @@ class TestPTY < Test::Unit::TestCase Process.wait(pid) } end + + def test_open_without_block + ret = PTY.open + assert_kind_of(Array, ret) + assert_equal(2, ret.length) + assert_equal(IO, ret[0].class) + assert_equal(File, ret[1].class) + master, slave = ret + assert(slave.tty?) + assert(File.chardev?(slave.path)) + ensure + if ret + ret[0].close + ret[1].close + end + end + + def test_open_with_block + r = nil + x = Object.new + y = PTY.open {|ret| + r = ret; + assert_kind_of(Array, ret) + assert_equal(2, ret.length) + assert_equal(IO, ret[0].class) + assert_equal(File, ret[1].class) + master, slave = ret + assert(slave.tty?) + assert(File.chardev?(slave.path)) + x + } + assert(r[0].closed?) + assert(r[1].closed?) + assert_equal(y, x) + end + + def test_close_in_block + PTY.open {|master, slave| + slave.close + master.close + assert(slave.closed?) + assert(master.closed?) + } + assert_nothing_raised { + PTY.open {|master, slave| + slave.close + master.close + } + } + end + + def test_open + PTY.open {|master, slave| + slave.puts "foo" + assert_equal("foo", master.gets.chomp) + master.puts "bar" + assert_equal("bar", slave.gets.chomp) + } + end + end if defined? PTY |