1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/-ext-/string/test_enc_associate.rb
shyouhei b57915eddc Add FrozenError as a subclass of RuntimeError
FrozenError will be used instead of RuntimeError for exceptions
raised when there is an attempt to modify a frozen object. The
reason for this change is to differentiate exceptions related
to frozen objects from generic exceptions such as those generated
by Kernel#raise without an exception class.

From: Jeremy Evans <code@jeremyevans.net>
Signed-off-by: Urabe Shyouhei <shyouhei@ruby-lang.org>


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-12 00:46:34 +00:00

24 lines
796 B
Ruby

# frozen_string_literal: false
require 'test/unit'
require "-test-/string"
class Test_StrEncAssociate < Test::Unit::TestCase
def test_frozen
s = Bug::String.new("abc")
s.force_encoding(Encoding::US_ASCII)
s.freeze
assert_raise(FrozenError) {s.associate_encoding!(Encoding::US_ASCII)}
assert_raise(FrozenError) {s.associate_encoding!(Encoding::UTF_8)}
end
Encoding.list.select(&:dummy?).each do |enc|
enc = enc.name.tr('-', '_')
define_method("test_dummy_encoding_index_#{enc}") do
assert_separately(["-r-test-/string", "-", enc], <<-"end;") #do
enc = Encoding.const_get(ARGV[0])
index = Bug::String.encoding_index(enc)
assert(index < 0xffff, "<%#x> expected but was\n<%#x>" % [index & 0xffff, index])
end;
end
end
end