diff options
Diffstat (limited to 'test/test_proxy_pass_no_buffering.rb')
-rw-r--r-- | test/test_proxy_pass_no_buffering.rb | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/test/test_proxy_pass_no_buffering.rb b/test/test_proxy_pass_no_buffering.rb index 88b7c80..48b8241 100644 --- a/test/test_proxy_pass_no_buffering.rb +++ b/test/test_proxy_pass_no_buffering.rb @@ -79,7 +79,6 @@ class TestProxyPassNoBuffering < Testcase req = "GET /giant-body HTTP/1.1\r\nHost: example.com\r\n" \ "Connection: close\r\n\r\n" s.write(req) - bufs = [] sleep 1 10.times do sleep 0.1 @@ -92,14 +91,10 @@ class TestProxyPassNoBuffering < Testcase [ deleted1, deleted2 ].each do |ary| ary.delete_if { |x| x =~ /\.(?:err|out) \(deleted\)/ } end - assert_equal 1, deleted1.size, "pid1=#{deleted1.inspect}" + assert_equal 0, deleted1.size, "pid1=#{deleted1.inspect}" assert_equal 0, deleted2.size, "pid2=#{deleted2.inspect}" - bufs.push(deleted1[0]) end end - before = bufs.size - bufs.uniq! - assert bufs.size < before, 'unlinked buffer should not grow' buf = ''.dup slow = Digest::MD5.new ft = Thread.new do @@ -108,26 +103,30 @@ class TestProxyPassNoBuffering < Testcase f.write(req) b2 = ''.dup check_headers(f) + nf = 0 begin f.readpartial(1024 * 1024, b2) + nf += b2.bytesize fast.update(b2) rescue EOFError f = f.close end while f b2.clear - fast + [ nf, fast.hexdigest ] end Thread.abort_on_exception = true check_headers(s) + n = 0 begin s.readpartial(1024 * 1024, buf) slow.update(buf) + n += buf.bytesize sleep 0.01 rescue EOFError s = s.close end while s ft.join(5) - assert_equal slow.hexdigest, ft.value.hexdigest + assert_equal [n, slow.hexdigest ], ft.value fast = Digest::MD5.new f = TCPSocket.new(host, port) |