[前][次][番号順一覧][スレッド一覧]

ruby-changes:7118

From: akr <ko1@a...>
Date: Fri, 15 Aug 2008 09:27:15 +0900 (JST)
Subject: [ruby-changes:7118] Ruby:r18636 (trunk): add a test.

akr	2008-08-15 09:27:03 +0900 (Fri, 15 Aug 2008)

  New Revision: 18636

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18636

  Log:
    add a test.

  Modified files:
    trunk/test/ruby/test_econv.rb

Index: test/ruby/test_econv.rb
===================================================================
--- test/ruby/test_econv.rb	(revision 18635)
+++ test/ruby/test_econv.rb	(revision 18636)
@@ -201,6 +201,54 @@
     src << "\x00";      check_ec("A\u{0201}\u{0403}\u{10000}",  "", :source_buffer_empty, *a)
   end
 
+  def test_invalid_utf32be
+    ec = Encoding::Converter.new("UTF-32BE", "UTF-8")
+    a = ["", src="", ec, nil, 50, Encoding::Converter::PARTIAL_INPUT]
+    src << "\x00";      check_ec("",    "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("",    "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("",    "", :source_buffer_empty, *a)
+    src << "A";         check_ec("A",   "", :source_buffer_empty, *a)
+
+    src << "\x00";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\xdc";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("A",   "", :invalid_byte_sequence, *a)
+
+    src << "\x00";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "B";         check_ec("AB",  "", :source_buffer_empty, *a)
+
+    src << "\x00";      check_ec("AB",  "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("AB",  "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("AB",  "", :source_buffer_empty, *a)
+    src << "C";         check_ec("ABC", "", :source_buffer_empty, *a)
+  end
+
+  def test_invalid_utf32le
+    ec = Encoding::Converter.new("UTF-32LE", "UTF-8")
+    a = ["", src="", ec, nil, 50, Encoding::Converter::PARTIAL_INPUT]
+    src << "A";         check_ec("",    "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("",    "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("",    "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("A",   "", :source_buffer_empty, *a)
+
+    src << "\x00";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\xdc";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("A",   "", :invalid_byte_sequence, *a)
+
+    src << "B";         check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("A",   "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("AB",  "", :source_buffer_empty, *a)
+
+    src << "C";         check_ec("AB",  "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("AB",  "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("AB",  "", :source_buffer_empty, *a)
+    src << "\x00";      check_ec("ABC", "", :source_buffer_empty, *a)
+  end
+
   def test_errors
     ec = Encoding::Converter.new("UTF-16BE", "EUC-JP")
     a =     ["", "\xFF\xFE\x00A\xDC\x00\x00B", ec, nil, 10]

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]