diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-05-10 16:05:13 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-05-10 16:05:13 +0000 |
commit | 64b6f2b2a14912f46c71377cb6281765072f6563 (patch) | |
tree | ed5844ad216921fc1bccab84b6735f17ca408c6d /test/ruby | |
parent | 9a10c9726115e7f3f31bb228ad41d5f17eecb5e5 (diff) | |
download | ruby-64b6f2b2a14912f46c71377cb6281765072f6563.tar.gz |
merge revision(s) 35594: [Backport #6422]
* io.c (io_unread): fix IO#pos with mode 'r' bug on Windows.
If the end of reading buffer is CR, io_unread() needs to unread one
more byte.
[ruby-core:44874] [Bug #6401]
* test/ruby/test_io_m17n.rb (TestIO_M17N#test_pos_with_buffer_end_cr):
add a test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@35613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_io_m17n.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/ruby/test_io_m17n.rb b/test/ruby/test_io_m17n.rb index 560cd03def..98c9e2b41c 100644 --- a/test/ruby/test_io_m17n.rb +++ b/test/ruby/test_io_m17n.rb @@ -2363,6 +2363,22 @@ EOT } end if /mswin|mingw/ =~ RUBY_PLATFORM + def test_pos_with_buffer_end_cr + bug6401 = '[ruby-core:44874]' + with_tmpdir { + # Read buffer size is 8191. This generates '\r' at 8191. + lines = ["X" * 8187, "X"] + generate_file("tmp", lines.join("\r\n") + "\r\n") + + open("tmp", "r") do |f| + lines.each do |line| + f.pos + assert_equal(line, f.readline.chomp, bug6401) + end + end + } + end if /mswin|mingw/ =~ RUBY_PLATFORM + def test_read_crlf_and_eof bug6271 = '[ruby-core:44189]' with_tmpdir { |