summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2022-05-26 12:22:42 -0700
committerJeremy Evans <code@jeremyevans.net>2022-07-21 08:13:40 -0700
commit04f86ad0b5d2fe4711ff300d855228a6aed55f33 (patch)
treeb01789d26e6a7a0a8bbd30a34c874479a7b3a034 /test/ruby
parent672925bf14d3466cdcb7c7e4977d5ae8ec093d99 (diff)
Do not chomp trailing line separator IO#each with nil separator and chomp
nil separator means no sepator, so chomp should not remove a line separator. Partially Fixes [Bug #18770]
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/5959
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_io.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb
index 0f42d8e164..b8530e7400 100644
--- a/test/ruby/test_io.rb
+++ b/test/ruby/test_io.rb
@@ -312,7 +312,7 @@ class TestIO < Test::Unit::TestCase
w.print "a\n\nb\n\n"
w.close
end, proc do |r|
- assert_equal "a\n\nb\n", r.gets(nil, chomp: true)
+ assert_equal("a\n\nb\n\n", r.gets(nil, chomp: true), "[Bug #18770]")
assert_nil r.gets("")
r.close
end)
@@ -1894,6 +1894,20 @@ class TestIO < Test::Unit::TestCase
assert_equal("baz\n", e.next)
assert_raise(StopIteration) { e.next }
end)
+
+ pipe(proc do |w|
+ w.write "foo\n"
+ w.close
+ end, proc do |r|
+ assert_equal(["foo\n"], r.each_line(nil, chomp: true).to_a, "[Bug #18770]")
+ end)
+
+ pipe(proc do |w|
+ w.write "foo\n"
+ w.close
+ end, proc do |r|
+ assert_equal(["fo", "o\n"], r.each_line(nil, 2, chomp: true).to_a, "[Bug #18770]")
+ end)
end
def test_each_byte2