test/lib_read_write.rb in kgio-2.10.0 vs test/lib_read_write.rb in kgio-2.11.0
- old
+ new
@@ -5,11 +5,16 @@
require 'fileutils'
$-w = true
require 'kgio'
module LibReadWriteTest
- RANDOM_BLOB = File.open("/dev/urandom") { |fp| fp.read(10 * 1024 * 1024) }
+ RANDOM_BLOB = File.open("/dev/urandom") do |fp|
+ nr = 31
+ buf = fp.read(nr)
+ # get roughly a 20MB block of random data
+ (buf * (20 * 1024 * 1024 / nr)) + (buf * rand(123))
+ end
def teardown
@rd.close if defined?(@rd) && ! @rd.closed?
@wr.close if defined?(@wr) && ! @wr.closed?
FileUtils.remove_entry_secure(@tmpdir) if defined?(@tmpdir)
@@ -367,11 +372,11 @@
@wr.instance_variable_set :@nr, 0
def @wr.kgio_wait_writable
@nr += 1
IO.select(nil, [self])
end
- buf = "." * 1024 * 1024 * 10
+ buf = RANDOM_BLOB
thr = Thread.new { @wr.kgio_write(buf) }
Thread.pass until thr.stop?
readed = @rd.read(buf.size)
thr.join
assert_nil thr.value
@@ -383,10 +388,10 @@
@wr.instance_variable_set :@nr, 0
def @wr.kgio_wait_writable
@nr += 1
IO.select(nil, [self])
end
- buf = ["." * 1024] * 1024 * 10
+ buf = [ RANDOM_BLOB, RANDOM_BLOB ]
buf_size = buf.inject(0){|c, s| c + s.size}
thr = Thread.new { @wr.kgio_writev(buf) }
Thread.pass until thr.stop?
readed = @rd.read(buf_size)
thr.join