varnishtest "Composite HTX manipulation test (H1 and H2 clear to H1 clear)"
#REQUIRE_VERSION=1.9

# This config tests several http-request features and their interactions.
# It extracts some samples, places them into variables, modifies some header
# fields, appends multiple identical header fields, overwrites the start line
# using several methods, then dumps the initial list of variables and the final
# one, then applies CRC32 to these values as signatures that are easy to test.
# Then it does it again in the backend after saving the current headers into
# the same names prefixed by "fe-". Then it does the same on the response path.
# If some modifications are performed, the crc values need to be adjusted based
# on the failed logs.
#
# Run it with HAPROXY_PROGRAM=$PWD/haproxy varnishtest -l -k -t 1 "$1"

feature ignore_unknown_macro

server s1 {
	rxreq
	txresp \
	  -status 234 \
	  -hdr "hdr1: val1" \
	  -hdr "hdr2:  val2a" \
	  -hdr "hdr2:    val2b" \
	  -hdr "hdr3:      val3a, val3b" \
	  -hdr "hdr4:" \
	  -body "This is a body"

	expect req.method == "GET"
	expect req.http.fe-sl1-crc == 992395575
	expect req.http.fe-sl2-crc == 1270056220
	expect req.http.fe-hdr-crc == 1719311923
	expect req.http.be-sl1-crc == 2604236007
	expect req.http.be-sl2-crc == 4181358964
	expect req.http.be-hdr-crc == 3634102538
} -repeat 2 -start

haproxy h1 -conf {
    defaults
	mode http
	option http-use-htx
	timeout connect 1s
	timeout client  1s
	timeout server  1s

    frontend fe
	bind "fd@${feh1}"
	bind "fd@${feh2}" proto h2

	#### requests
	http-request set-var(req.method)     method
	http-request set-var(req.uri)        url
	http-request set-var(req.path)       path
	http-request set-var(req.query)      query
	http-request set-var(req.param)      url_param(qs_arg)

	http-request set-header     sl1      "sl1: "

	http-request set-method              "%[str(GET)]"
	http-request set-uri                 concat(/bu/,req.uri,/eu)
	http-request set-path                "/bp/%[var(req.path)]/ep"
	http-request set-query               "bq&%[var(req.query)]&eq"

	http-request set-header     sl2      "sl2: "

	http-request set-header     sl1      "%[req.fhdr(sl1)] method=<%[var(req.method)]>; uri=<%[var(req.uri)]>; path=<%[var(req.path)]>;"
	http-request set-header     sl1      "%[req.fhdr(sl1)] query=<%[var(req.query)]>; param=<%[var(req.param)]>"
	http-request set-header     sl2      "%[req.fhdr(sl2)] method=<%[method]>; uri=<%[url]>; path=<%[path]>; "
	http-request set-header     sl2      "%[req.fhdr(sl2)] query=<%[query]>; param=<%[url_param(qs_arg)]>"
	http-request set-header     hdr      "%[req.fhdr(hdr)] hdr1=<%[req.hdr(hdr1)]>; fhdr1=<%[req.fhdr(hdr1)]>;"
	http-request set-header     hdr      "%[req.fhdr(hdr)] hdr2=<%[req.hdr(hdr2)]>; fhdr2=<%[req.fhdr(hdr2)]>;"
	http-request set-header     hdr      "%[req.fhdr(hdr)] hdr3=<%[req.hdr(hdr3)]>; fhdr3=<%[req.fhdr(hdr3)]>;"
	http-request set-header     hdr      "%[req.fhdr(hdr)] hdr4=<%[req.hdr(hdr4)]>; fhdr4=<%[req.fhdr(hdr4)]>;"

	http-request set-header     sl1-crc  "%[req.fhdr(sl1),crc32]"
	http-request set-header     sl2-crc  "%[req.fhdr(sl2),crc32]"
	http-request set-header     hdr-crc  "%[req.fhdr(hdr),crc32]"

	#### responses
	http-response set-header    be-sl1   "%[res.fhdr(sl1)]"
	http-response set-header    be-sl2   "%[res.fhdr(sl2)]"
	http-response set-header    be-hdr   "%[res.fhdr(hdr)]"

	http-response set-header  be-sl1-crc "%[res.fhdr(sl1-crc)]"
	http-response set-header  be-sl2-crc "%[res.fhdr(sl2-crc)]"
	http-response set-header  be-hdr-crc "%[res.fhdr(hdr-crc)]"

	http-response set-var(res.status)    status
	http-response set-header    sl1      "sl1: "

	http-response set-status    200

	http-response set-header    sl2      "sl2: "

	http-response set-header    sl1      "%[res.fhdr(sl1)] status=<%[var(res.status)]>;"
	http-response set-header    sl2      "%[res.fhdr(sl2)] status=<%[status]>;"
	http-response set-header    hdr      "%[res.fhdr(hdr)] hdr1=<%[res.hdr(hdr1)]>; fhdr1=<%[res.fhdr(hdr1)]>;"
	http-response set-header    hdr      "%[res.fhdr(hdr)] hdr2=<%[res.hdr(hdr2)]>; fhdr2=<%[res.fhdr(hdr2)]>;"
	http-response set-header    hdr      "%[res.fhdr(hdr)] hdr3=<%[res.hdr(hdr3)]>; fhdr3=<%[res.fhdr(hdr3)]>;"
	http-response set-header    hdr      "%[res.fhdr(hdr)] hdr4=<%[res.hdr(hdr4)]>; fhdr4=<%[res.fhdr(hdr4)]>;"

	http-response set-header  fe-sl1-crc "%[res.fhdr(sl1),crc32]"
	http-response set-header  fe-sl2-crc "%[res.fhdr(sl2),crc32]"
	http-response set-header  fe-hdr-crc "%[res.fhdr(hdr),crc32]"

	default_backend be

    backend be
	#### requests
	http-request set-header     fe-sl1   "%[req.fhdr(sl1)]"
	http-request set-header     fe-sl2   "%[req.fhdr(sl2)]"
	http-request set-header     fe-hdr   "%[req.fhdr(hdr)]"

	http-request set-header   fe-sl1-crc "%[req.fhdr(sl1-crc)]"
	http-request set-header   fe-sl2-crc "%[req.fhdr(sl2-crc)]"
	http-request set-header   fe-hdr-crc "%[req.fhdr(hdr-crc)]"

	http-request set-var(req.method)     method
	http-request set-var(req.uri)        url
	http-request set-var(req.path)       path
	http-request set-var(req.query)      query
	http-request set-var(req.param)      url_param(qs_arg)

	http-request set-header     sl1      "sl1: "

	http-request set-method              "%[str(GET)]"
	http-request set-uri                 concat(/bu/,req.uri,/eu)
	http-request set-path                "/bp/%[var(req.path)]/ep"
	http-request set-query               "bq&%[var(req.query)]&eq"

	http-request set-header     sl2      "sl2: "

	http-request set-header     sl1      "%[req.fhdr(sl1)] method=<%[var(req.method)]>; uri=<%[var(req.uri)]>; path=<%[var(req.path)]>;"
	http-request set-header     sl1      "%[req.fhdr(sl1)] query=<%[var(req.query)]>; param=<%[var(req.param)]>"
	http-request set-header     sl2      "%[req.fhdr(sl2)] method=<%[method]>; uri=<%[url]>; path=<%[path]>; "
	http-request set-header     sl2      "%[req.fhdr(sl2)] query=<%[query]>; param=<%[url_param(qs_arg)]>"
	http-request set-header     hdr      "%[req.fhdr(hdr)] hdr1=<%[req.hdr(hdr1)]>; fhdr1=<%[req.fhdr(hdr1)]>;"
	http-request set-header     hdr      "%[req.fhdr(hdr)] hdr2=<%[req.hdr(hdr2)]>; fhdr2=<%[req.fhdr(hdr2)]>;"
	http-request set-header     hdr      "%[req.fhdr(hdr)] hdr3=<%[req.hdr(hdr3)]>; fhdr3=<%[req.fhdr(hdr3)]>;"
	http-request set-header     hdr      "%[req.fhdr(hdr)] hdr4=<%[req.hdr(hdr4)]>; fhdr4=<%[req.fhdr(hdr4)]>;"

	http-request set-header   be-sl1-crc "%[req.fhdr(sl1),crc32]"
	http-request set-header   be-sl2-crc "%[req.fhdr(sl2),crc32]"
	http-request set-header   be-hdr-crc "%[req.fhdr(hdr),crc32]"

	#### responses
	http-response set-var(res.status)    status
	http-response set-header     sl1     "sl1: "

	http-response set-status     200

	http-response set-header     sl2     "sl2: "

	http-response set-header     sl1     "%[res.fhdr(sl1)] status=<%[var(res.status)]>;"
	http-response set-header     sl2     "%[res.fhdr(sl2)] status=<%[status]>;"
	http-response set-header     hdr     "%[res.fhdr(hdr)] hdr1=<%[res.hdr(hdr1)]>; fhdr1=<%[res.fhdr(hdr1)]>;"
	http-response set-header     hdr     "%[res.fhdr(hdr)] hdr2=<%[res.hdr(hdr2)]>; fhdr2=<%[res.fhdr(hdr2)]>;"
	http-response set-header     hdr     "%[res.fhdr(hdr)] hdr3=<%[res.hdr(hdr3)]>; fhdr3=<%[res.fhdr(hdr3)]>;"
	http-response set-header     hdr     "%[res.fhdr(hdr)] hdr4=<%[res.hdr(hdr4)]>; fhdr4=<%[res.fhdr(hdr4)]>;"

	http-response set-header     sl1-crc "%[res.fhdr(sl1),crc32]"
	http-response set-header     sl2-crc "%[res.fhdr(sl2),crc32]"
	http-response set-header     hdr-crc "%[res.fhdr(hdr),crc32]"

	server s1 ${s1_addr}:${s1_port}
} -start

client c1h1 -connect ${h1_feh1_sock} {
	txreq \
	  -req GET \
	  -url /path/to/file.extension?qs_arg=qs_value \
	  -hdr "hdr1: val1" \
	  -hdr "hdr2:  val2a" \
	  -hdr "hdr2:    val2b" \
	  -hdr "hdr3:      val3a, val3b" \
	  -hdr "hdr4:"
	rxresp

	expect resp.status == 200
	expect resp.http.be-sl1-crc == 487202719
	expect resp.http.be-sl2-crc == 561949791
	expect resp.http.be-hdr-crc == 1719311923
	expect resp.http.fe-sl1-crc == 146151597
	expect resp.http.fe-sl2-crc == 561949791
	expect resp.http.fe-hdr-crc == 3634102538
	expect resp.bodylen == 14
	expect resp.body == "This is a body"
} -run

client c1h2 -connect ${h1_feh2_sock} {
	txpri
	stream 0 {
		txsettings
		rxsettings
		txsettings -ack
		rxwinup
		rxsettings
		expect settings.ack == true
	} -run
	stream 1 {
		# warning: -req, -scheme, -url MUST be placed first otherwise
		# the H2 protocol is invalid since they are pseudo-headers
		txreq \
		  -req GET \
		  -scheme "https" \
		  -url /path/to/file.extension?qs_arg=qs_value \
		  -hdr "hdr1" "val1" \
		  -hdr "hdr2" " val2a" \
		  -hdr "hdr2" "   val2b" \
		  -hdr "hdr3" "     val3a, val3b" \
		  -hdr "hdr4" ""

		rxhdrs
		expect resp.status == 200
		expect resp.http.be-sl1-crc == 487202719
		expect resp.http.be-sl2-crc == 561949791
		expect resp.http.be-hdr-crc == 1719311923
		expect resp.http.fe-sl1-crc == 146151597
		expect resp.http.fe-sl2-crc == 561949791
		expect resp.http.fe-hdr-crc == 3634102538
		expect resp.http.content-length == 14

		rxdata -all
		expect resp.body == "This is a body"
	} -run
} -run
