From 9fff5f0fabb50ab0d46034d6c1b9dcc4447a8a66 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 15 Oct 2009 06:14:16 +0000 Subject: * io.c (io_encoding_set): get rid of parsing non-ascii string, and refine messages for invalid name encoding. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_io_m17n.rb | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'test') diff --git a/test/ruby/test_io_m17n.rb b/test/ruby/test_io_m17n.rb index 6f5e686c42..976aae8c2e 100644 --- a/test/ruby/test_io_m17n.rb +++ b/test/ruby/test_io_m17n.rb @@ -220,33 +220,27 @@ EOT end def test_s_pipe_invalid - r, w = IO.pipe("utf-8", "euc-jp", :invalid=>:replace) - w << "\x80" - w.close - assert_equal("?", r.read) - ensure - r.close if r && !r.closed? - w.close if w && !w.closed? + with_pipe("utf-8", "euc-jp", :invalid=>:replace) {|r, w| + w << "\x80" + w.close + assert_equal("?", r.read) + } end def test_s_pipe_undef - r, w = IO.pipe("utf-8:euc-jp", :undef=>:replace) - w << "\ufffd" - w.close - assert_equal("?", r.read) - ensure - r.close if r && !r.closed? - w.close if w && !w.closed? + with_pipe("utf-8:euc-jp", :undef=>:replace) {|r, w| + w << "\ufffd" + w.close + assert_equal("?", r.read) + } end def test_s_pipe_undef_replace_string - r, w = IO.pipe("utf-8:euc-jp", :undef=>:replace, :replace=>"X") - w << "\ufffd" - w.close - assert_equal("X", r.read) - ensure - r.close if r && !r.closed? - w.close if w && !w.closed? + with_pipe("utf-8:euc-jp", :undef=>:replace, :replace=>"X") {|r, w| + w << "\ufffd" + w.close + assert_equal("X", r.read) + } end def test_dup @@ -572,6 +566,11 @@ EOT assert_equal(eucjp, r.read) } + e = assert_raise(ArgumentError) {with_pipe("UTF-8", "UTF-8".encode("UTF-32BE")) {}} + assert_match(/invalid name encoding/, e.message) + e = assert_raise(ArgumentError) {with_pipe("UTF-8".encode("UTF-32BE")) {}} + assert_match(/invalid name encoding/, e.message) + ENCS.each {|enc| with_pipe(enc) {|r, w| w << "\xc2\xa1" -- cgit v1.2.3