diff options
Diffstat (limited to 'test/ruby/test_io_buffer.rb')
| -rw-r--r-- | test/ruby/test_io_buffer.rb | 185 |
1 files changed, 17 insertions, 168 deletions
diff --git a/test/ruby/test_io_buffer.rb b/test/ruby/test_io_buffer.rb index c3ab09f27e..c1034efe34 100644 --- a/test/ruby/test_io_buffer.rb +++ b/test/ruby/test_io_buffer.rb @@ -124,20 +124,6 @@ class TestIOBuffer < Test::Unit::TestCase end end - def test_string - result = IO::Buffer.string(12) do |buffer| - buffer.set_string("Hello World!") - end - - assert_equal "Hello World!", result - end - - def test_string_negative - assert_raise ArgumentError do - IO::Buffer.string(-1) - end - end - def test_resize_mapped buffer = IO::Buffer.new @@ -201,26 +187,16 @@ class TestIOBuffer < Test::Unit::TestCase assert_equal("Hello World", buffer.get_string(8, 11)) end - def test_slice_arguments - buffer = IO::Buffer.for("Hello World") - - slice = buffer.slice - assert_equal "Hello World", slice.get_string - - slice = buffer.slice(2) - assert_equal("llo World", slice.get_string) - end - - def test_slice_bounds_error + def test_slice_bounds buffer = IO::Buffer.new(128) assert_raise ArgumentError do buffer.slice(128, 10) end - assert_raise ArgumentError do - buffer.slice(-10, 10) - end + # assert_raise RuntimeError do + # pp buffer.slice(-10, 10) + # end end def test_locked @@ -285,59 +261,17 @@ class TestIOBuffer < Test::Unit::TestCase :F64 => [-1.0, 0.0, 0.5, 1.0, 128.0], } - def test_get_set_value + def test_get_set_primitives buffer = IO::Buffer.new(128) - RANGES.each do |data_type, values| + RANGES.each do |type, values| values.each do |value| - buffer.set_value(data_type, 0, value) - assert_equal value, buffer.get_value(data_type, 0), "Converting #{value} as #{data_type}." + buffer.set_value(type, 0, value) + assert_equal value, buffer.get_value(type, 0), "Converting #{value} as #{type}." end end end - def test_get_set_values - buffer = IO::Buffer.new(128) - - RANGES.each do |data_type, values| - format = [data_type] * values.size - - buffer.set_values(format, 0, values) - assert_equal values, buffer.get_values(format, 0), "Converting #{values} as #{format}." - end - end - - def test_values - buffer = IO::Buffer.new(128) - - RANGES.each do |data_type, values| - format = [data_type] * values.size - - buffer.set_values(format, 0, values) - assert_equal values, buffer.values(data_type, 0, values.size), "Reading #{values} as #{format}." - end - end - - def test_each - buffer = IO::Buffer.new(128) - - RANGES.each do |data_type, values| - format = [data_type] * values.size - data_type_size = IO::Buffer.size_of(data_type) - values_with_offsets = values.map.with_index{|value, index| [index * data_type_size, value]} - - buffer.set_values(format, 0, values) - assert_equal values_with_offsets, buffer.each(data_type, 0, values.size).to_a, "Reading #{values} as #{data_type}." - end - end - - def test_each_byte - string = "The quick brown fox jumped over the lazy dog." - buffer = IO::Buffer.for(string) - - assert_equal string.bytes, buffer.each_byte.to_a - end - def test_clear buffer = IO::Buffer.new(16) buffer.set_string("Hello World!") @@ -369,38 +303,17 @@ class TestIOBuffer < Test::Unit::TestCase input.close end - def hello_world_tempfile + def test_read io = Tempfile.new io.write("Hello World") io.seek(0) - yield io - ensure - io&.close! - end - - def test_read - hello_world_tempfile do |io| - buffer = IO::Buffer.new(128) - buffer.read(io) - assert_equal "Hello", buffer.get_string(0, 5) - end - end - - def test_read_with_with_length - hello_world_tempfile do |io| - buffer = IO::Buffer.new(128) - buffer.read(io, 5) - assert_equal "Hello", buffer.get_string(0, 5) - end - end + buffer = IO::Buffer.new(128) + buffer.read(io, 5) - def test_read_with_with_offset - hello_world_tempfile do |io| - buffer = IO::Buffer.new(128) - buffer.read(io, nil, 6) - assert_equal "Hello", buffer.get_string(6, 5) - end + assert_equal "Hello", buffer.get_string(0, 5) + ensure + io.close! end def test_write @@ -408,7 +321,7 @@ class TestIOBuffer < Test::Unit::TestCase buffer = IO::Buffer.new(128) buffer.set_string("Hello") - buffer.write(io) + buffer.write(io, 5) io.seek(0) assert_equal "Hello", io.read(5) @@ -422,7 +335,7 @@ class TestIOBuffer < Test::Unit::TestCase io.seek(0) buffer = IO::Buffer.new(128) - buffer.pread(io, 6, 5) + buffer.pread(io, 5, 6) assert_equal "World", buffer.get_string(0, 5) assert_equal 0, io.tell @@ -430,41 +343,12 @@ class TestIOBuffer < Test::Unit::TestCase io.close! end - def test_pread_offset - io = Tempfile.new - io.write("Hello World") - io.seek(0) - - buffer = IO::Buffer.new(128) - buffer.pread(io, 6, 5, 6) - - assert_equal "World", buffer.get_string(6, 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, 6, 5) - - assert_equal 0, io.tell - - io.seek(6) - assert_equal "World", io.read(5) - ensure - io.close! - end - - def test_pwrite_offset - io = Tempfile.new - - buffer = IO::Buffer.new(128) - buffer.set_string("Hello World") - buffer.pwrite(io, 6, 5, 6) + buffer.pwrite(io, 5, 6) assert_equal 0, io.tell @@ -473,39 +357,4 @@ class TestIOBuffer < Test::Unit::TestCase ensure io.close! end - - def test_operators - source = IO::Buffer.for("1234123412") - mask = IO::Buffer.for("133\x00") - - assert_equal IO::Buffer.for("123\x00123\x0012"), (source & mask) - assert_equal IO::Buffer.for("1334133413"), (source | mask) - assert_equal IO::Buffer.for("\x00\x01\x004\x00\x01\x004\x00\x01"), (source ^ mask) - assert_equal IO::Buffer.for("\xce\xcd\xcc\xcb\xce\xcd\xcc\xcb\xce\xcd"), ~source - end - - def test_inplace_operators - source = IO::Buffer.for("1234123412") - mask = IO::Buffer.for("133\x00") - - assert_equal IO::Buffer.for("123\x00123\x0012"), source.dup.and!(mask) - assert_equal IO::Buffer.for("1334133413"), source.dup.or!(mask) - assert_equal IO::Buffer.for("\x00\x01\x004\x00\x01\x004\x00\x01"), source.dup.xor!(mask) - assert_equal IO::Buffer.for("\xce\xcd\xcc\xcb\xce\xcd\xcc\xcb\xce\xcd"), source.dup.not! - end - - def test_shared - message = "Hello World" - buffer = IO::Buffer.new(64, IO::Buffer::MAPPED | IO::Buffer::SHARED) - - pid = fork do - buffer.set_string(message) - end - - Process.wait(pid) - string = buffer.get_string(0, message.bytesize) - assert_equal message, string - rescue NotImplementedError - omit "Fork/shared memory is not supported." - end end |
