varnishtest "HTTP response size tests: H2->H1 (HTX and legacy mode)"

feature ignore_unknown_macro

server s1 {
	rxreq
	txresp \
	  -status 200 \
	  -nolen \
	  -hdr "Transfer-encoding: chunked" \
	  -hdr "Connection: close"

	#  -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
	chunkedlen 0
} -repeat 2 -start

haproxy h1 -conf {
    global
    .if feature(THREAD)
        thread-groups 1
    .endif

    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
		#expect resp.chunkedlen == 16300
	} -run
} -repeat 2 -run
