From bed920f0731a1a89a0e5fc7a7428d21be3ffb8a0 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Thu, 23 Dec 2021 12:20:09 +1300 Subject: Add fiber scheduler hooks for `pread`/`pwrite`, and add support to `IO::Buffer`. --- test/ruby/test_io_buffer.rb | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'test/ruby/test_io_buffer.rb') diff --git a/test/ruby/test_io_buffer.rb b/test/ruby/test_io_buffer.rb index 362845ec2a..7e3b467ed5 100644 --- a/test/ruby/test_io_buffer.rb +++ b/test/ruby/test_io_buffer.rb @@ -1,5 +1,7 @@ # frozen_string_literal: false +require 'tempfile' + class TestIOBuffer < Test::Unit::TestCase experimental = Warning[:experimental] begin @@ -270,4 +272,59 @@ class TestIOBuffer < Test::Unit::TestCase input.close end + + def test_read + io = Tempfile.new + io.write("Hello World") + io.seek(0) + + buffer = IO::Buffer.new(128) + buffer.read(io, 5) + + assert_equal "Hello", buffer.get_string(0, 5) + ensure + io.close! + end + + def test_write + io = Tempfile.new + + buffer = IO::Buffer.new(128) + buffer.set_string("Hello") + buffer.write(io, 5) + + io.seek(0) + assert_equal "Hello", io.read(5) + ensure + io.close! + end + + def test_pread + io = Tempfile.new + io.write("Hello World") + io.seek(0) + + buffer = IO::Buffer.new(128) + buffer.pread(io, 5, 6) + + assert_equal "World", buffer.get_string(0, 5) + assert_equal 0, io.tell + ensure + io.close! + end + + def test_pwrite + io = Tempfile.new + + buffer = IO::Buffer.new(128) + buffer.set_string("World") + buffer.pwrite(io, 5, 6) + + assert_equal 0, io.tell + + io.seek(6) + assert_equal "World", io.read(5) + ensure + io.close! + end end -- cgit v1.2.3