diff options
Diffstat (limited to 'test/test_wbuf.rb')
-rw-r--r-- | test/test_wbuf.rb | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/test/test_wbuf.rb b/test/test_wbuf.rb index 0eacb08..0d7959c 100644 --- a/test/test_wbuf.rb +++ b/test/test_wbuf.rb @@ -71,8 +71,17 @@ class TestWbuf < Testcase end while true end wbuf = Yahns::Wbuf.new([], true, Dir.tmpdir, :wait_writable) - assert_equal :wait_writable, wbuf.wbuf_write(a, buf) - assert_equal :wait_writable, wbuf.wbuf_flush(a) + + rv1 = wbuf.wbuf_write(a, buf) + rv2 = wbuf.wbuf_flush(a) + case rv1 + when nil + assert_equal true, rv2, 'some kernels succeed with real sendfile' + when :wait_writable + assert_equal :wait_writable, rv2, 'some block on sendfile' + else + flunk "unexpected from wbuf_write/flush: #{rv1.inspect} / #{rv2.inspect}" + end # drain the buffer Timeout.timeout(10) { b.read(b.nread) until b.nread == 0 } |