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

* 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
This commit is contained in:
nobu 2009-10-27 13:22:40 +00:00
parent 0d76affdf9
commit 8252adfd5a
3 changed files with 46 additions and 1 deletions

View file

@ -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)