summaryrefslogtreecommitdiff
path: root/test/ruby/test_io.rb
diff options
context:
space:
mode:
authorNobuyoshi Nakada <[email protected]>2024-12-10 23:57:57 +0900
committerNobuyoshi Nakada <[email protected]>2024-12-10 23:57:57 +0900
commite90b447655dd39ad1eb645cdaae450efd605db00 (patch)
tree8cdb9dbbf342f2352095d6896e897635b9174698 /test/ruby/test_io.rb
parent3422bfcab6bfdedd10e5c85f5fd6334387712bc6 (diff)
[Bug #20924] Fix reading with delimiter in wide character encodings
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/12304
Diffstat (limited to 'test/ruby/test_io.rb')
-rw-r--r--test/ruby/test_io.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb
index 0abc71a5b0..ec080080c5 100644
--- a/test/ruby/test_io.rb
+++ b/test/ruby/test_io.rb
@@ -2036,6 +2036,36 @@ class TestIO < Test::Unit::TestCase
}
end
+ def test_readline_limit_nonascii
+ mkcdtmpdir do
+ i = 0
+
+ File.open("text#{i+=1}", "w+:utf-8") do |f|
+ f.write("Test\nok\u{bf}ok\n")
+ f.rewind
+
+ assert_equal("Test\nok\u{bf}", f.readline("\u{bf}"))
+ assert_equal("ok\n", f.readline("\u{bf}"))
+ end
+
+ File.open("text#{i+=1}", "w+b:utf-32le") do |f|
+ f.write("0123456789")
+ f.rewind
+
+ assert_equal(4, f.readline(4).bytesize)
+ assert_equal(4, f.readline(3).bytesize)
+ end
+
+ File.open("text#{i+=1}", "w+:utf-8:utf-32le") do |f|
+ f.write("0123456789")
+ f.rewind
+
+ assert_equal(4, f.readline(4).bytesize)
+ assert_equal(4, f.readline(3).bytesize)
+ end
+ end
+ end
+
def test_set_lineno_readline
pipe(proc do |w|
w.puts "foo"