summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-23 23:57:14 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-23 23:57:14 +0000
commit888a89153a11913e26774d7b9293512a4706629e (patch)
tree9cc70ec2c10bd7ddebfbdb486dc0c01de4a9499e /test
parent0fbe6b5da14ebc86846eae596ef0271ff777c2d7 (diff)
add some tests on conversion for pipe.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14560 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_io_m17n.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/ruby/test_io_m17n.rb b/test/ruby/test_io_m17n.rb
index 4b8273b40b..16dc9f232e 100644
--- a/test/ruby/test_io_m17n.rb
+++ b/test/ruby/test_io_m17n.rb
@@ -1,5 +1,6 @@
require 'test/unit'
require 'tmpdir'
+require 'timeout'
class TestIO_M17N < Test::Unit::TestCase
ENCS = [
@@ -65,6 +66,39 @@ EOT
}
end
+ def test_pipe_terminator_conversion
+ with_pipe("euc-jp:utf-8") {|r, w|
+ w.write "before \xa2\xa2 after"
+ rs = "\xA2\xA2".encode("utf-8", "euc-jp")
+ timeout(1) {
+ assert_equal("before \xa2\xa2".encode("utf-8", "euc-jp"),
+ r.gets(rs))
+ }
+ }
+ end
+
+ def test_pipe_conversion
+ with_pipe("euc-jp:utf-8") {|r, w|
+ w.write "\xa1\xa1"
+ assert_equal("\xa1\xa1".encode("utf-8", "euc-jp"), r.getc)
+ }
+ end
+
+ def test_pipe_convert_partial_read
+ with_pipe("euc-jp:utf-8") {|r, w|
+ begin
+ t = Thread.new {
+ w.write "\xa1"
+ sleep 0.1
+ w.write "\xa1"
+ }
+ assert_equal("\xa1\xa1".encode("utf-8", "euc-jp"), r.getc)
+ ensure
+ t.join if t
+ end
+ }
+ end
+
def test_open_ascii
with_tmpdir {
src = "abc\n"