summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-io/test
diff options
context:
space:
mode:
authorksss <[email protected]>2017-12-17 14:50:43 +0900
committerksss <[email protected]>2017-12-17 18:02:37 +0900
commit35185e69bff725e0f11d49db9b2793185fe9927f (patch)
tree93c0a3f5fdb0a012a697e429ad535645d508fa1c /mrbgems/mruby-io/test
parentddb1aae41de507efb9ab3d7ec2edb23911888783 (diff)
downloadmruby-35185e69bff725e0f11d49db9b2793185fe9927f.tar.gz
mruby-35185e69bff725e0f11d49db9b2793185fe9927f.zip
Implement IO#initialize_copy
Diffstat (limited to 'mrbgems/mruby-io/test')
-rw-r--r--mrbgems/mruby-io/test/io.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/mrbgems/mruby-io/test/io.rb b/mrbgems/mruby-io/test/io.rb
index 9a6328ea4..96c3495d0 100644
--- a/mrbgems/mruby-io/test/io.rb
+++ b/mrbgems/mruby-io/test/io.rb
@@ -211,6 +211,35 @@ assert('IO#<<') do
true
end
+assert('IO#dup for readable') do
+ io = IO.new(IO.sysopen($mrbtest_io_rfname))
+ dup = io.dup
+ assert_true io != dup
+ assert_true io.fileno != dup.fileno
+ assert_equal 'm', dup.sysread(1)
+ assert_equal 'r', io.sysread(1)
+ assert_equal 'u', dup.sysread(1)
+ assert_equal 'b', io.sysread(1)
+ assert_equal 'y', dup.sysread(1)
+ dup.close
+ assert_false io.closed?
+ io.close
+ true
+end
+
+assert('IO#dup for writable') do
+ io = IO.open(IO.sysopen($mrbtest_io_wfname, 'w+'), 'w+')
+ dup = io.dup
+ io.syswrite "mruby"
+ assert_equal 5, dup.sysseek(0, IO::SEEK_CUR)
+ io.sysseek 0, IO::SEEK_SET
+ assert_equal 0, dup.sysseek(0, IO::SEEK_CUR)
+ assert_equal "mruby", dup.sysread(5)
+ dup.close
+ io.close
+ true
+end
+
assert('IO.for_fd') do
fd = IO.sysopen($mrbtest_io_rfname)
io = IO.for_fd(fd)