From db83618d2c49cbab8b78e31ecf5a8979895bc5d6 Mon Sep 17 00:00:00 2001 From: naruse Date: Tue, 13 Mar 2012 04:03:06 +0000 Subject: * 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 --- test/ruby/test_io_m17n.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'test') diff --git a/test/ruby/test_io_m17n.rb b/test/ruby/test_io_m17n.rb index 4f01a82674..8c71c2c871 100644 --- a/test/ruby/test_io_m17n.rb +++ b/test/ruby/test_io_m17n.rb @@ -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" -- cgit v1.2.3