Bug #8767 » 0001-io.c-IO.copy_stream-should-write-in-binary-mode.patch
| io.c | ||
|---|---|---|
|
args[1] = INT2NUM(oflags);
|
||
|
args[2] = INT2FIX(0666);
|
||
|
dst_io = rb_class_new_instance(3, args, rb_cFile);
|
||
|
rb_io_binmode_m(dst_io);
|
||
|
stp->dst = dst_io;
|
||
|
stp->close_dst = 1;
|
||
|
}
|
||
| test/ruby/test_io.rb | ||
|---|---|---|
|
}
|
||
|
end
|
||
|
def test_copy_stream_to_obj_with_to_path_in_binmode
|
||
|
mkcdtmpdir {
|
||
|
EnvUtil.with_default_internal(Encoding::UTF_8) do
|
||
|
# StringIO to object with to_path
|
||
|
bytes = "\xDE\xAD\xBE\xEF".force_encoding(Encoding::ASCII_8BIT)
|
||
|
src = StringIO.new(bytes)
|
||
|
dst = Object.new
|
||
|
def dst.to_path
|
||
|
"qux"
|
||
|
end
|
||
|
IO.copy_stream(src, dst)
|
||
|
assert_equal(bytes, File.binread("qux"))
|
||
|
assert_equal(4, src.pos)
|
||
|
end
|
||
|
}
|
||
|
end
|
||
|
class Rot13IO
|
||
|
def initialize(io)
|
||
|
@io = io
|
||
- « Previous
- 1
- 2
- Next »