mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Fixed by [Bug #18964] --- file.c | 3 --- 1 file changed, 3 deletions(-) [Bug #18964] Update the code range of appended portion --- ext/-test-/econv/append.c | 15 +++++++++++++++ ext/-test-/econv/extconf.rb | 3 +++ ext/-test-/econv/init.c | 11 +++++++++++ transcode.c | 34 ++++++++++++++++++++++++++++++---- 4 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 ext/-test-/econv/append.c create mode 100644 ext/-test-/econv/extconf.rb create mode 100644 ext/-test-/econv/init.c [Bug #18964] Add test for `rb_econv_append` --- test/-ext-/econv/test_append.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 test/-ext-/econv/test_append.rb
23 lines
647 B
Ruby
23 lines
647 B
Ruby
# frozen_string_literal: false
|
|
require 'test/unit'
|
|
require "-test-/econv"
|
|
|
|
class Test_EConvAppend < Test::Unit::TestCase
|
|
def test_econv_str_append_valid
|
|
ec = Bug::EConv.new("utf-8", "cp932")
|
|
dst = "\u3044".encode("cp932")
|
|
ret = ec.append("\u3042"*30, dst)
|
|
assert_same(dst, ret)
|
|
assert_not_predicate(dst, :ascii_only?)
|
|
assert_predicate(dst, :valid_encoding?)
|
|
end
|
|
|
|
def test_econv_str_append_broken
|
|
ec = Bug::EConv.new("utf-8", "cp932")
|
|
dst = ""
|
|
ret = ec.append("\u3042"*30, dst)
|
|
assert_same(dst, ret)
|
|
assert_not_predicate(dst, :ascii_only?)
|
|
assert_not_predicate(dst, :valid_encoding?)
|
|
end
|
|
end
|