mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
81fc1cf201
a character is not found properly. * string.c (rb_enc_strlen): round up string length with fixed multibyte encoding such as UTF-32. (rb_enc_strlen_cr): ditto. (rb_str_substr): fix substring with fixed multibyte encoding. (rb_str_justify): check number of characters. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
27 lines
618 B
Ruby
27 lines
618 B
Ruby
require 'test/unit'
|
|
|
|
class TestUTF32 < Test::Unit::TestCase
|
|
def encdump(str)
|
|
d = str.dump
|
|
if /\.force_encoding\("[A-Za-z0-9.:_+-]*"\)\z/ =~ d
|
|
d
|
|
else
|
|
"#{d}.force_encoding(#{str.encoding.name.dump})"
|
|
end
|
|
end
|
|
|
|
def assert_str_equal(expected, actual, message=nil)
|
|
full_message = build_message(message, <<EOT)
|
|
#{encdump expected} expected but not equal to
|
|
#{encdump actual}.
|
|
EOT
|
|
assert_block(full_message) { expected == actual }
|
|
end
|
|
|
|
def test_substr
|
|
assert_str_equal(
|
|
"abcdefgh".force_encoding("utf-32be"),
|
|
"abcdefgh".force_encoding("utf-32be")[0,3])
|
|
end
|
|
end
|
|
|