test/lib_read_write.rb in kgio-2.8.0.2.g30c1 vs test/lib_read_write.rb in kgio-2.8.1

- old
+ new

@@ -1,18 +1,20 @@ # -*- encoding: binary -*- require 'test/unit' require 'io/nonblock' require 'digest/sha1' +require 'fileutils' $-w = true require 'kgio' module LibReadWriteTest RANDOM_BLOB = File.open("/dev/urandom") { |fp| fp.read(10 * 1024 * 1024) } def teardown @rd.close if defined?(@rd) && ! @rd.closed? @wr.close if defined?(@wr) && ! @wr.closed? + FileUtils.remove_entry_secure(@tmpdir) if defined?(@tmpdir) end def test_write_empty assert_nil @wr.kgio_write("") end @@ -354,11 +356,12 @@ thr = Thread.new { @wr.kgio_writev(buf) } @rd.nonblock = false readed = @rd.read(RANDOM_BLOB.size) thr.join assert_nil thr.value - assert_equal RANDOM_BLOB, readed + e = (RANDOM_BLOB == readed) + assert e end def test_monster_write_wait_writable @wr.instance_variable_set :@nr, 0 def @wr.kgio_wait_writable @@ -386,11 +389,12 @@ thr = Thread.new { @wr.kgio_writev(buf) } Thread.pass until thr.stop? readed = @rd.read(buf_size) thr.join assert_nil thr.value - assert_equal buf.join, readed + e = (buf.join == readed) + assert e assert @wr.instance_variable_get(:@nr) > 0 end def test_wait_readable_ruby_default elapsed = 0 @@ -452,13 +456,15 @@ def test_trywrite_wait_readable_method def @wr.kgio_wait_writable raise "Hello" end - tmp = [] - buf = "." * 1024 - 10000.times { tmp << @wr.kgio_trywrite(buf) } - assert_equal :wait_writable, tmp.pop + buf = "." * 4096 + rv = nil + until rv == :wait_writable + rv = @wr.kgio_trywrite(buf) + end + assert_equal :wait_writable, rv end def test_wait_writable_method def @wr.kgio_wait_writable defined?(@z) ? raise(RuntimeError, "Hello") : @z = "HI"