Unverified Commit 86edc9ab authored by ksss's avatar ksss

IO#sysread should raise IOError when closed

parent 844b2c36
...@@ -636,7 +636,7 @@ mrb_io_sysread(mrb_state *mrb, mrb_value io) ...@@ -636,7 +636,7 @@ mrb_io_sysread(mrb_state *mrb, mrb_value io)
buf = mrb_str_resize(mrb, buf, maxlen); buf = mrb_str_resize(mrb, buf, maxlen);
} }
fptr = (struct mrb_io *)mrb_get_datatype(mrb, io, &mrb_io_type); fptr = (struct mrb_io *)io_get_open_fptr(mrb, io);
ret = read(fptr->fd, RSTRING_PTR(buf), maxlen); ret = read(fptr->fd, RSTRING_PTR(buf), maxlen);
switch (ret) { switch (ret) {
case 0: /* EOF */ case 0: /* EOF */
......
...@@ -235,6 +235,7 @@ assert('IO.sysopen, IO#sysread') do ...@@ -235,6 +235,7 @@ assert('IO.sysopen, IO#sysread') do
end end
io.close io.close
assert_equal "", io.sysread(0) assert_equal "", io.sysread(0)
assert_raise(IOError) { io.sysread(1) }
io.closed? io.closed?
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment