diff options
| -rw-r--r-- | mrblib/io.rb | 6 | ||||
| -rw-r--r-- | test/io.rb | 24 |
2 files changed, 23 insertions, 7 deletions
diff --git a/mrblib/io.rb b/mrblib/io.rb index 1fcd44b28..ca687aee0 100644 --- a/mrblib/io.rb +++ b/mrblib/io.rb @@ -11,10 +11,10 @@ class IO BUF_SIZE = 4096 - def self.open(fd, mode = "r", opt = {}, &block) - io = self.new(fd, mode, opt) + def self.open(*args, &block) + io = self.new(*args) - return io unless block + return io unless block begin yield io diff --git a/test/io.rb b/test/io.rb index 315f3ea79..77b6bc430 100644 --- a/test/io.rb +++ b/test/io.rb @@ -1,6 +1,10 @@ ## # IO Test +assert('IO TEST SETUP') do + MRubyIOTestUtil.io_test_setup +end + assert('IO', '15.2.20') do assert_equal(Class, IO.class) end @@ -13,6 +17,22 @@ assert('IO', '15.2.20.3') do assert_include(IO.included_modules, Enumerable) end +assert('IO.open', '15.2.20.4.1') do + fd = IO.sysopen $mrbtest_io_rfname + assert_equal Fixnum, fd.class + io = IO.open fd + assert_equal IO, io.class + assert_equal $mrbtest_io_msg+"\n", io.read + io.close + + fd = IO.sysopen $mrbtest_io_rfname + IO.open(fd) do |io| + assert_equal $mrbtest_io_msg+"\n", io.read + end + + true +end + assert('IO.new') do IO.new(0) end @@ -21,10 +41,6 @@ assert('IO gc check') do 100.times { IO.new(0) } end -assert('IO TEST SETUP') do - MRubyIOTestUtil.io_test_setup -end - assert('IO.sysopen, IO#close, IO#closed?') do fd = IO.sysopen $mrbtest_io_rfname assert_equal Fixnum, fd.class |
