diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-07-29 14:38:44 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-07-29 14:38:44 +0000 |
commit | be9994a03ae32b5cd4a799b20ed96c3aaaba97b7 (patch) | |
tree | abd38e3e99366b296bd3eac1fef12638d9ab20f0 /test | |
parent | d866ba69a1605a390155fe5401f11fdc0f010668 (diff) | |
download | ruby-be9994a03ae32b5cd4a799b20ed96c3aaaba97b7.tar.gz |
* io.c (io_ungetc): raise NotImplementedError when ungetc is called
against dummy encoding IO.
* io.c (rb_io_getline_1): ditto when gets with delimiter is called.
* io.c (io_getc): ditto when getc is called.
* test/ruby/test_io_m17n.rb (test_terminator_stateful_conversion,
test_getc_stateful_conversion, test_ungetc_stateful_conversion):
these tests should raise NotImplementedError.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_io_m17n.rb | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/test/ruby/test_io_m17n.rb b/test/ruby/test_io_m17n.rb index 585e5aeadd..bc9c6f34ce 100644 --- a/test/ruby/test_io_m17n.rb +++ b/test/ruby/test_io_m17n.rb @@ -161,11 +161,13 @@ EOT with_tmpdir { src = "before \e$B\x23\x30\x23\x31\e(B after".force_encoding("iso-2022-jp") generate_file('tmp', src) - s = open("tmp", "r:iso-2022-jp:euc-jp") {|f| - f.gets("0".force_encoding("euc-jp")) - } - assert_equal(Encoding.find("euc-jp"), s.encoding) - assert_str_equal(src.encode("euc-jp"), s) + assert_raise(NotImplementedError) do + s = open("tmp", "r:iso-2022-jp:euc-jp") {|f| + f.gets("0".force_encoding("euc-jp")) + } + assert_equal(Encoding.find("euc-jp"), s.encoding) + assert_str_equal(src.encode("euc-jp"), s) + end } end @@ -218,10 +220,27 @@ EOT with_tmpdir { src = "\e$B\x23\x30\x23\x31\e(B".force_encoding("iso-2022-jp") generate_file('tmp', src) - open("tmp", "r:iso-2022-jp:euc-jp") {|f| - assert_equal("\xa3\xb0".force_encoding("euc-jp"), f.getc) - assert_equal("\xa3\xb1".force_encoding("euc-jp"), f.getc) - } + assert_raise(NotImplementedError) do + open("tmp", "r:iso-2022-jp:euc-jp") {|f| + assert_equal("\xa3\xb0".force_encoding("euc-jp"), f.getc) + assert_equal("\xa3\xb1".force_encoding("euc-jp"), f.getc) + } + end + } + end + + def test_ungetc_stateful_conversion + with_tmpdir { + src = "before \e$B\x23\x30\x23\x31\e(B after".force_encoding("iso-2022-jp") + generate_file('tmp', src) + assert_raise(NotImplementedError) do + s = open("tmp", "r:iso-2022-jp:euc-jp") {|f| + f.ungetc("0".force_encoding("euc-jp")) + f.read + } + assert_equal(Encoding.find("euc-jp"), s.encoding) + assert_str_equal(("0" + src).encode("euc-jp"), s) + end } end |