summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-26 16:09:29 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-26 16:09:29 +0000
commitdb6ec3105ea5c3b7e30e15ec0a0b4d1a5dbe0ac3 (patch)
tree18544cbe90f7e147a0c7cd4dee7ecc700e2f7a01 /test
parent99a26ac1642cbe3f27f939cc53c0bef5a0ac15a1 (diff)
* include/ruby/encoding.h (rb_econv_result_t): enumeration constant:
econv_incomplete_input. * io.c (finish_writeconv): check econv_incomplete_input. * transcode.c (transcode_restartable0): return econv_incomplete_input for unexpected end of source buffer. (trans_sweep): check econv_incomplete_input. (rb_trans_conv): ditto. (rb_econv_convert0): ditto. (rb_econv_convert): ditto. (transcode_loop): ditto. (make_econv_exception): change message for econv_incomplete_input. (econv_result_to_symbol): return :incomplete_input for econv_incomplete_input. (ecerr_incomplete_input): new method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_econv.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/test/ruby/test_econv.rb b/test/ruby/test_econv.rb
index a9724d5d62..5324e6dfe2 100644
--- a/test/ruby/test_econv.rb
+++ b/test/ruby/test_econv.rb
@@ -364,7 +364,7 @@ class TestEncodingConverter < Test::Unit::TestCase
def test_errinfo_invalid_partial_character
ec = Encoding::Converter.new("EUC-JP", "ISO-8859-1")
ec.primitive_convert(src="\xa4", dst="", nil, 10)
- assert_errinfo(:invalid_byte_sequence, "EUC-JP", "UTF-8", "\xA4", "", nil, ec)
+ assert_errinfo(:incomplete_input, "EUC-JP", "UTF-8", "\xA4", "", nil, ec)
end
def test_errinfo_valid_partial_character
@@ -426,6 +426,18 @@ class TestEncodingConverter < Test::Unit::TestCase
assert_equal("UTF-8", err.destination_encoding)
assert_equal("\xA4".force_encoding("ASCII-8BIT"), err.error_bytes)
assert_equal("d", err.readagain_bytes)
+ assert_equal(false, err.incomplete_input?)
+ end
+
+ def test_exc_incomplete
+ err = assert_raise(Encoding::InvalidByteSequence) {
+ "abc\xa4".encode("ISO-8859-1", "EUC-JP")
+ }
+ assert_equal("EUC-JP", err.source_encoding)
+ assert_equal("UTF-8", err.destination_encoding)
+ assert_equal("\xA4".force_encoding("ASCII-8BIT"), err.error_bytes)
+ assert_equal(nil, err.readagain_bytes)
+ assert_equal(true, err.incomplete_input?)
end
def test_exc_undef