summaryrefslogtreecommitdiff
path: root/test/ruby/test_io_buffer.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_io_buffer.rb')
-rw-r--r--test/ruby/test_io_buffer.rb185
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