summaryrefslogtreecommitdiffhomepage
path: root/test/io.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/io.rb')
-rw-r--r--test/io.rb25
1 files changed, 24 insertions, 1 deletions
diff --git a/test/io.rb b/test/io.rb
index 49a2a3f97..02507a9d4 100644
--- a/test/io.rb
+++ b/test/io.rb
@@ -130,7 +130,7 @@ assert('IO#read') do
io = IO.new fd
assert_equal 'mruby', io.read(5)
assert_equal $mrbtest_io_msg[5,100] + "\n", io.read
- assert_equal nil, io.read
+ assert_equal "", io.read
io.close
io.closed?
end
@@ -251,6 +251,29 @@ assert('IO.popen') do
io.closed?
end
+assert('IO.read') do
+ # empty file
+ fd = IO.sysopen $mrbtest_io_wfname, "w"
+ io = IO.new fd, "w"
+ io.close
+ assert_equal "", IO.read($mrbtest_io_wfname)
+ assert_equal nil, IO.read($mrbtest_io_wfname, 1)
+
+ # one byte file
+ fd = IO.sysopen $mrbtest_io_wfname, "w"
+ io = IO.new fd, "w"
+ io.write "123"
+ io.close
+ assert_equal "123", IO.read($mrbtest_io_wfname)
+ assert_equal "", IO.read($mrbtest_io_wfname, 0)
+ assert_equal "1", IO.read($mrbtest_io_wfname, 1)
+ assert_equal "", IO.read($mrbtest_io_wfname, 0, 10)
+ assert_equal "23", IO.read($mrbtest_io_wfname, 2, 1)
+ assert_equal "23", IO.read($mrbtest_io_wfname, 10, 1)
+ assert_equal "", IO.read($mrbtest_io_wfname, nil, 10)
+ assert_equal nil, IO.read($mrbtest_io_wfname, 1, 10)
+end
+
assert('IO#fileno') do
fd = IO.sysopen $mrbtest_io_rfname
io = IO.new fd