blob: 2982c880f3b46898b16c43b4ce824c6cca6edd6c [file] [log] [blame]
varnishtest "Filtering test with several filters and random forwarding (via trace filter)"
#REQUIRE_VERSION=2.4
#REQUIRE_OPTION=ZLIB|SLZ
#REGTEST_TYPE=slow
feature ignore_unknown_macro
barrier b1 cond 2 -cyclic
server s1 {
rxreq
expect req.url == "/"
expect req.bodylen == 1048576
expect req.http.accept-encoding == "<undef>"
txresp \
-hdr "Content-Type: text/plain" \
-bodylen 1048576
rxreq
expect req.url == "/"
txresp \
-hdr "Content-Length: 0"
recv 36000
send_n 1000 "0123456789abcdefghijklmnopqrstuvwxyz"
barrier b1 sync
accept
rxreq
expect req.url == "/"
txresp -nolen \
-hdr "Content-Type: text/plain" \
-bodylen 20480
close
accept
rxreq
expect req.url == "/"
txresp -nolen
} -start
haproxy h1 -conf {
defaults
mode http
${no-htx} option http-use-htx
timeout connect 1s
timeout client 1s
timeout server 1s
frontend fe1
bind "fd@${fe1}"
compression offload
compression algo gzip
filter trace name "BEFORE" random-forwarding quiet
filter compression
filter trace name "AFTER" random-forwarding quiet
default_backend be1
backend be1
server www ${s1_addr}:${s1_port}
} -start
client c1 -connect ${h1_fe1_sock} {
txreq -url "/" \
-hdr "Accept-Encoding: gzip" \
-hdr "Content-Type: text/plain" \
-bodylen 1048576
rxresp
expect resp.status == 200
expect resp.http.content-encoding == "gzip"
expect resp.http.transfer-encoding == "chunked"
gunzip
expect resp.bodylen == 1048576
txreq -method "CONNECT" -url "/" -nolen
rxresp
expect resp.status == 200
send_n 1000 "0123456789abcdefghijklmnopqrstuvwxyz"
recv 36000
barrier b1 sync
} -run
client c2 -connect ${h1_fe1_sock} {
txreq -url "/" \
-hdr "Accept-Encoding: gzip" \
-hdr "Content-Type: text/plain"
rxresp
expect resp.status == 200
expect resp.http.content-encoding == "<undef>"
expect resp.http.transfer-encoding == "<undef>"
expect resp.http.content-length == "<undef>"
expect resp.bodylen == 20480
} -run
client c3 -connect ${h1_fe1_sock} {
txreq -url "/" \
-hdr "Accept-Encoding: gzip" \
-hdr "Content-Type: text/plain"
rxresp
expect resp.status == 200
expect resp.http.content-encoding == "<undef>"
expect resp.http.transfer-encoding == "<undef>"
expect resp.http.content-length == "<undef>"
expect resp.bodylen == 0
} -run