aboutsummaryrefslogtreecommitdiffstats
path: root/test/stringio
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-10-27 13:22:40 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-10-27 13:22:40 +0000
commit8252adfd5a6020a8b3dad173f71e9012ba5c6acf (patch)
tree4a61954426334085fd52726bfc1a18c69bbe884b /test/stringio
parent0d76affdf905a72a6bcb25530ca13468bc36a0bc (diff)
downloadruby-8252adfd5a6020a8b3dad173f71e9012ba5c6acf.tar.gz
* 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.rb40
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)