diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-04-18 23:48:27 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-04-18 23:48:27 +0000 |
commit | ab0eb272f9e73123211574081aa8a0943678d80d (patch) | |
tree | 5fd6a149c40d1ffd25eb2531beb30fa17566a6d8 /test/stringio | |
parent | aa883f84da4f3e4e82ecf2feaddca31d015f590e (diff) | |
download | ruby-ab0eb272f9e73123211574081aa8a0943678d80d.tar.gz |
* io.c (io_readpartial): Document the output buffer parameter is
overwritten with the read contents even when non-empty.
Patch by yu nobuoka. [ruby-trunk - Bug #6285]
* io.c (io_read_nonblock): ditto.
* io.c (io_read): ditto.
* io.c (rb_io_sysread): ditto.
* io.c (argf_read): ditto.
* io.c (argf_readpartial): ditto.
* ext/stringio/stringio.c (strio_read): ditto.
* test/ruby/test_argf.rb (class TestArgf): Add test for existing
behavior of read outbuf.
* test/ruby/test_io.rb (class TestIO): ditto.
* test/stringio/test_stringio.rb (class TestStringIO): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/stringio')
-rw-r--r-- | test/stringio/test_stringio.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/stringio/test_stringio.rb b/test/stringio/test_stringio.rb index 26fcc624e2..22cba382fb 100644 --- a/test/stringio/test_stringio.rb +++ b/test/stringio/test_stringio.rb @@ -426,6 +426,11 @@ class TestStringIO < Test::Unit::TestCase s = "" f.read(nil, s) assert_equal("\u3042\u3044", s, bug5207) + f.rewind + # not empty buffer + s = "0123456789" + f.read(nil, s) + assert_equal("\u3042\u3044", s) end def test_readpartial @@ -435,6 +440,10 @@ class TestStringIO < Test::Unit::TestCase assert_equal("\u3042\u3044", f.readpartial) f.rewind assert_equal("\u3042\u3044".force_encoding(Encoding::ASCII_8BIT), f.readpartial(f.size)) + f.rewind + # not empty buffer + s = '0123456789' + assert_equal("\u3042\u3044".force_encoding(Encoding::ASCII_8BIT), f.readpartial(f.size, s)) end def test_read_nonblock @@ -444,6 +453,10 @@ class TestStringIO < Test::Unit::TestCase assert_equal("\u3042\u3044", f.read_nonblock) f.rewind assert_equal("\u3042\u3044".force_encoding(Encoding::ASCII_8BIT), f.read_nonblock(f.size)) + f.rewind + # not empty buffer + s = '0123456789' + assert_equal("\u3042\u3044".force_encoding(Encoding::ASCII_8BIT), f.read_nonblock(f.size, s)) end def test_size |