* io.c (io_encoding_set): always warn if external encoding and internal

encoding are identical. [ruby-core:40727] [Bug #5568]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2012-03-13 04:03:06 +00:00
parent 272d72efc0
commit db83618d2c
3 changed files with 43 additions and 1 deletions

View file

@ -984,6 +984,32 @@ EOT
end)
end
def test_set_encoding_identical
bug5568 = '[ruby-core:40727]'
open(__FILE__, "r") do |f|
assert_warn(/Ignoring internal encoding euc-jp: it is identical to external encoding eucjp/, bug5568) {
f.set_encoding("eucjp:euc-jp")
}
assert_warn(/Ignoring internal encoding euc-jp: it is identical to external encoding eucjp/, bug5568) {
f.set_encoding("eucjp", "euc-jp")
}
assert_warn(/Ignoring internal encoding euc-jp: it is identical to external encoding EUC-JP/, bug5568) {
f.set_encoding(Encoding::EUC_JP, "euc-jp")
}
assert_warn(/Ignoring internal encoding EUC-JP: it is identical to external encoding eucjp/, bug5568) {
f.set_encoding("eucjp", Encoding::EUC_JP)
}
assert_warn(/Ignoring internal encoding EUC-JP: it is identical to external encoding EUC-JP/, bug5568) {
f.set_encoding(Encoding::EUC_JP, Encoding::EUC_JP)
}
nonstr = Object.new
def nonstr.to_str; "eucjp"; end
assert_warn(/Ignoring internal encoding eucjp: it is identical to external encoding eucjp/, bug5568) {
f.set_encoding(nonstr, nonstr)
}
end
end
def test_set_encoding_undef
pipe(proc do |w|
w << "\ufffd"