summaryrefslogtreecommitdiff
path: root/test/-ext-
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-08-20 16:25:30 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-08-20 16:25:30 +0900
commitb32a3f1275a8c7748f2134492ce3c532f277d261 (patch)
treecf51b64f4ad132092fdee133f9991cbc89e0e9e1 /test/-ext-
parent485019c2bd02794b484500c78919b0d1230e4a84 (diff)
downloadruby-b32a3f1275a8c7748f2134492ce3c532f277d261.tar.gz
[Bug #18964] Add test for `rb_econv_append`
Diffstat (limited to 'test/-ext-')
-rw-r--r--test/-ext-/econv/test_append.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/-ext-/econv/test_append.rb b/test/-ext-/econv/test_append.rb
new file mode 100644
index 0000000000..f8c1d2add6
--- /dev/null
+++ b/test/-ext-/econv/test_append.rb
@@ -0,0 +1,23 @@
+# 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