mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-15 18:17:01 +00:00
I've had this test here never committed over the last 2.5 years, that works fine and I didn't notice it was not part of the tree. It makes a server return odd-sized chunked responses with short pauses between half of thems and verifies they're not truncated on the client. It may detect eventually state machine breakages, so better commit it.
102 lines
1.6 KiB
Plaintext
102 lines
1.6 KiB
Plaintext
varnishtest "HTTP response size tests: H2->H1 (HTX and legacy mode)"
|
|
#REQUIRE_VERSION=1.9
|
|
|
|
feature ignore_unknown_macro
|
|
|
|
server s1 {
|
|
rxreq
|
|
txresp \
|
|
-status 200 \
|
|
-nolen \
|
|
-hdr "Transfer-encoding: chunked"
|
|
# -bodylen 16300
|
|
#chunkedlen 16300
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
delay 0.05
|
|
chunkedlen 815
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
delay 0.05
|
|
|
|
chunkedlen 815
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
delay 0.05
|
|
chunkedlen 815
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
delay 0.05
|
|
|
|
chunkedlen 815
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
delay 0.05
|
|
chunkedlen 815
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
delay 0.05
|
|
|
|
chunkedlen 815
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
delay 0.05
|
|
chunkedlen 815
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
delay 0.05
|
|
|
|
chunkedlen 815
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
delay 0.05
|
|
chunkedlen 815
|
|
#delay 0.05
|
|
chunkedlen 815
|
|
delay 0.05
|
|
} -repeat 2 -start
|
|
|
|
haproxy h1 -conf {
|
|
defaults
|
|
#log stdout format raw daemon
|
|
mode http
|
|
option http-buffer-request
|
|
timeout connect 1s
|
|
timeout client 1s
|
|
timeout server 1s
|
|
|
|
listen feh1
|
|
bind "fd@${feh1}"
|
|
bind "fd@${feh2}" proto h2
|
|
http-response add-header a b
|
|
#http-response del-header content-length
|
|
server s1 ${s1_addr}:${s1_port}
|
|
} -start
|
|
|
|
client c1h2 -connect ${h1_feh2_sock} {
|
|
txpri
|
|
stream 0 {
|
|
txsettings
|
|
rxsettings
|
|
txsettings -ack
|
|
rxsettings
|
|
expect settings.ack == true
|
|
} -run
|
|
|
|
# first request is valid
|
|
stream 1 {
|
|
txreq \
|
|
-req "GET" \
|
|
-scheme "https" \
|
|
-url "/test1.html"
|
|
rxhdrs
|
|
#delay 0.1
|
|
expect resp.status == 200
|
|
rxdata -all
|
|
expect resp.bodylen == 16300
|
|
#expext resp.chunkedlen == 16300
|
|
} -run
|
|
} -repeat 2 -run
|