diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-10-27 13:22:40 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-10-27 13:22:40 +0000 |
commit | 8252adfd5a6020a8b3dad173f71e9012ba5c6acf (patch) | |
tree | 4a61954426334085fd52726bfc1a18c69bbe884b /test/stringio | |
parent | 0d76affdf905a72a6bcb25530ca13468bc36a0bc (diff) |
* ext/stringio/stringio.c (Init_stringio): added read_nonblock and
write_nonblock aliases. [ruby-dev:39551]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/stringio')
-rw-r--r-- | test/stringio/test_stringio.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/stringio/test_stringio.rb b/test/stringio/test_stringio.rb index 212315ae10..63647683ca 100644 --- a/test/stringio/test_stringio.rb +++ b/test/stringio/test_stringio.rb @@ -87,6 +87,28 @@ class TestStringIO < Test::Unit::TestCase f.close unless f.closed? end + def test_write_nonblock + s = "" + f = StringIO.new(s, "w") + f.write_nonblock("foo") + f.close + assert_equal("foo", s) + + f = StringIO.new(s, File::WRONLY) + f.write_nonblock("bar") + f.close + assert_equal("bar", s) + + f = StringIO.new(s, "a") + o = Object.new + def o.to_s; "baz"; end + f.write_nonblock(o) + f.close + assert_equal("barbaz", s) + ensure + f.close unless f.closed? + end + def test_mode_error f = StringIO.new("", "r") assert_raise(IOError) { f.write("foo") } @@ -390,6 +412,24 @@ class TestStringIO < Test::Unit::TestCase assert_equal("\u3042\u3044".force_encoding(Encoding::ASCII_8BIT), f.read(f.size)) end + def test_readpartial + f = StringIO.new("\u3042\u3044") + assert_raise(ArgumentError) { f.readpartial(-1) } + assert_raise(ArgumentError) { f.readpartial(1, 2, 3) } + assert_equal("\u3042\u3044", f.readpartial) + f.rewind + assert_equal("\u3042\u3044".force_encoding(Encoding::ASCII_8BIT), f.readpartial(f.size)) + end + + def test_read_nonblock + f = StringIO.new("\u3042\u3044") + assert_raise(ArgumentError) { f.read_nonblock(-1) } + assert_raise(ArgumentError) { f.read_nonblock(1, 2, 3) } + assert_equal("\u3042\u3044", f.read_nonblock) + f.rewind + assert_equal("\u3042\u3044".force_encoding(Encoding::ASCII_8BIT), f.read_nonblock(f.size)) + end + def test_size f = StringIO.new("1234") assert_equal(4, f.size) |