summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-15 15:36:26 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-15 15:36:26 +0000
commit849618990a4cde01688a4d07fe8da3516c90852e (patch)
treeabded374ba907cb11295f53ecb67aad6ab2c9582 /test
parent354f5324d9c8061b79275db7b8219547e52f1ff2 (diff)
downloadruby-849618990a4cde01688a4d07fe8da3516c90852e.tar.gz
ruby-849618990a4cde01688a4d07fe8da3516c90852e.tar.xz
ruby-849618990a4cde01688a4d07fe8da3516c90852e.zip
add tests.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/test_pty.rb60
1 files changed, 60 insertions, 0 deletions
diff --git a/test/test_pty.rb b/test/test_pty.rb
index bbf85a3d3..684ab2c01 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