varnishtest "#1086 junk after gzip from backend and streaming enabled"

barrier b1 cond 2

server s1 {
	# This one will be streamed
	rxreq
	txresp -nolen \
		-hdr "Content-Encoding: gzip" \
		-hdr "Transfer-Encoding: Chunked" \
		-hdr "Set-Cookie: FOO"
	send "14\r\n"
		# An empty gzip file:
		sendhex "1f8b"
		sendhex "08"
		sendhex "00"
		sendhex "00000000"
		sendhex "00"
		sendhex "03"
		sendhex "0300"
		sendhex "00000000"
		sendhex "00000000"
	send "\r\n"

	barrier b1 sync

	chunked "FOOBAR"
	non_fatal
	chunkedlen 0
} -start


varnish v1 -vcl+backend {
	sub vcl_backend_response {
		if (beresp.http.set-cookie == "BAR") {
			set beresp.do_stream = false;
		}
	}
} -start

client c1 {
	txreq -hdr "Cookie: FOO"
	rxresphdrs
	expect resp.status == 200
	barrier b1 sync
	expect_close
} -run

delay .1

server s1 -wait {
	fatal

	# This one will not be streamed
	rxreq
	txresp -nolen \
		-hdr "Content-Encoding: gzip" \
		-hdr "Transfer-Encoding: Chunked" \
		-hdr "Set-Cookie: BAR"
	send "14\r\n"
		# An empty gzip file:
		sendhex "1f8b"
		sendhex "08"
		sendhex "00"
		sendhex "00000000"
		sendhex "00"
		sendhex "03"
		sendhex "0300"
		sendhex "00000000"
		sendhex "00000000"
	send "\r\n"

	delay .2

	chunked "FOOBAR"
	non_fatal
	chunkedlen 0

} -start

client c1 {
	txreq -hdr "Cookie: BAR"
	rxresp
	expect resp.status == 503
} -run

