diff --git a/reg-tests/http-messaging/h00000.vtc b/reg-tests/http-messaging/h00000.vtc
new file mode 100644
index 0000000..3954f36
--- /dev/null
+++ b/reg-tests/http-messaging/h00000.vtc
@@ -0,0 +1,172 @@
+varnishtest "HTTP request tests: H1 to H1, legacy mode"
+#REQUIRE_VERSION=1.6
+
+# Run it with HAPROXY_PROGRAM=$PWD/haproxy varnishtest -l -k -t 1 "$1"
+
+feature ignore_unknown_macro
+
+server s1 {
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 1"
+
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 2"
+
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 3"
+
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 4"
+} -repeat 2 -start
+
+haproxy h1 -conf {
+    defaults
+	mode http
+	#option http-use-htx
+	timeout connect 1s
+	timeout client  1s
+	timeout server  1s
+
+    listen feh1
+	bind "fd@${feh1}"
+	#bind "fd@${feh2}" proto h2
+	server s1 ${s1_addr}:${s1_port}
+} -start
+
+# GET requests
+client c1h1 -connect ${h1_feh1_sock} {
+	# first request is valid
+	txreq \
+	  -req "GET" \
+	  -url "/test1.html"
+	rxresp
+	expect resp.status == 200
+
+	# second request is valid and advertises C-L:0
+	txreq \
+	  -req "GET" \
+	  -url "/test2.html" \
+          -hdr "content-length: 0"
+	rxresp
+	expect resp.status == 200
+
+	# third request sends a body with a GET
+	txreq \
+	  -req "GET" \
+	  -url "/test3.html" \
+          -body "this must be delivered, like it or not"
+	rxresp
+	expect resp.status == 200
+
+	# fourth request is valid and advertises C-L:0, and close, and is
+	# followed by a string "this is not sent\r\n\r\n" which must be
+	# dropped.
+	txreq \
+	  -req "GET" \
+	  -url "/test4.html" \
+          -hdr "content-length: 0" \
+          -hdr "connection: close"
+	# "this is not sent"
+	sendhex "74787973207973206E6F742073656E740D0A0D0A"
+	rxresp
+	expect resp.status == 200
+
+	# the connection is expected to be closed and no more response must
+	# arrive here.
+	expect_close
+} -run
+
+# HEAD requests
+# Note: for now they fail with varnishtest, which expects the amount of
+# data advertised in the content-length response.
+#client c2h1 -connect ${h1_feh1_sock} {
+#	# first request is valid
+#	txreq \
+#	  -req "HEAD" \
+#	  -url "/test11.html"
+#	rxresp
+#	expect resp.status == 200
+#
+#	# second request is valid and advertises C-L:0
+#	txreq \
+#	  -req "HEAD" \
+#	  -url "/test12.html" \
+#          -hdr "content-length: 0"
+#	rxresp
+#	expect resp.status == 200
+#
+#	# third request sends a body with a GET
+#	txreq \
+#	  -req "GET" \
+#	  -url "/test13.html" \
+#          -body "this must be delivered, like it or not"
+#	rxresp
+#	expect resp.status == 200
+#
+#	# fourth request is valid and advertises C-L:0, and close, and is
+#	# followed by a string "this is not sent\r\n\r\n" which must be
+#	# dropped.
+#	txreq \
+#	  -req "HEAD" \
+#	  -url "/test14.html" \
+#          -hdr "content-length: 0" \
+#          -hdr "connection: close"
+#	# "this is not sent"
+#	sendhex "74787973207973206E6F742073656E740D0A0D0A"
+#	rxresp
+#	expect resp.status == 200
+#
+#	# the connection is expected to be closed and no more response must
+#	# arrive here.
+#	expect_close
+#} -run
+
+client c1h1 -connect ${h1_feh1_sock} {
+	# first request is valid
+	txreq \
+	  -req "POST" \
+	  -url "/test21.html"
+	rxresp
+	expect resp.status == 200
+
+	# second request is valid and advertises C-L:0
+	txreq \
+	  -req "POST" \
+	  -url "/test22.html" \
+          -hdr "content-length: 0"
+	rxresp
+	expect resp.status == 200
+
+	# third request is valid and advertises (and sends) somme contents
+	txreq \
+	  -req "POST" \
+	  -url "/test23.html" \
+	  -body "this is sent"
+	rxresp
+	expect resp.status == 200
+
+	# fourth request is valid and advertises C-L:0, and close, and is
+	# followed by a string "this is not sent\r\n\r\n" which must be
+	# dropped.
+	txreq \
+	  -req "POST" \
+	  -url "/test24.html" \
+          -hdr "content-length: 0" \
+          -hdr "connection: close"
+	# "this is not sent"
+	sendhex "74787973207973206E6F742073656E740D0A0D0A"
+	rxresp
+	expect resp.status == 200
+
+	# the connection is expected to be closed and no more response must
+	# arrive here.
+	expect_close
+} -run
diff --git a/reg-tests/http-messaging/h00001.vtc b/reg-tests/http-messaging/h00001.vtc
new file mode 100644
index 0000000..65b2ce0
--- /dev/null
+++ b/reg-tests/http-messaging/h00001.vtc
@@ -0,0 +1,172 @@
+varnishtest "HTTP request tests: H1 to H1, HTX mode"
+#REQUIRE_VERSION=1.9
+
+# Run it with HAPROXY_PROGRAM=$PWD/haproxy varnishtest -l -k -t 1 "$1"
+
+feature ignore_unknown_macro
+
+server s1 {
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 1"
+
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 2"
+
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 3"
+
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 4"
+} -repeat 2 -start
+
+haproxy h1 -conf {
+    defaults
+	mode http
+	option http-use-htx
+	timeout connect 1s
+	timeout client  1s
+	timeout server  1s
+
+    listen feh1
+	bind "fd@${feh1}"
+	#bind "fd@${feh2}" proto h2
+	server s1 ${s1_addr}:${s1_port}
+} -start
+
+# GET requests
+client c1h1 -connect ${h1_feh1_sock} {
+	# first request is valid
+	txreq \
+	  -req "GET" \
+	  -url "/test1.html"
+	rxresp
+	expect resp.status == 200
+
+	# second request is valid and advertises C-L:0
+	txreq \
+	  -req "GET" \
+	  -url "/test2.html" \
+          -hdr "content-length: 0"
+	rxresp
+	expect resp.status == 200
+
+	# third request sends a body with a GET
+	txreq \
+	  -req "GET" \
+	  -url "/test3.html" \
+          -body "this must be delivered, like it or not"
+	rxresp
+	expect resp.status == 200
+
+	# fourth request is valid and advertises C-L:0, and close, and is
+	# followed by a string "this is not sent\r\n\r\n" which must be
+	# dropped.
+	txreq \
+	  -req "GET" \
+	  -url "/test4.html" \
+          -hdr "content-length: 0" \
+          -hdr "connection: close"
+	# "this is not sent"
+	sendhex "74787973207973206E6F742073656E740D0A0D0A"
+	rxresp
+	expect resp.status == 200
+
+	# the connection is expected to be closed and no more response must
+	# arrive here.
+	expect_close
+} -run
+
+# HEAD requests
+# Note: for now they fail with varnishtest, which expects the amount of
+# data advertised in the content-length response.
+#client c2h1 -connect ${h1_feh1_sock} {
+#	# first request is valid
+#	txreq \
+#	  -req "HEAD" \
+#	  -url "/test11.html"
+#	rxresp
+#	expect resp.status == 200
+#
+#	# second request is valid and advertises C-L:0
+#	txreq \
+#	  -req "HEAD" \
+#	  -url "/test12.html" \
+#          -hdr "content-length: 0"
+#	rxresp
+#	expect resp.status == 200
+#
+#	# third request sends a body with a GET
+#	txreq \
+#	  -req "GET" \
+#	  -url "/test13.html" \
+#          -body "this must be delivered, like it or not"
+#	rxresp
+#	expect resp.status == 200
+#
+#	# fourth request is valid and advertises C-L:0, and close, and is
+#	# followed by a string "this is not sent\r\n\r\n" which must be
+#	# dropped.
+#	txreq \
+#	  -req "HEAD" \
+#	  -url "/test14.html" \
+#          -hdr "content-length: 0" \
+#          -hdr "connection: close"
+#	# "this is not sent"
+#	sendhex "74787973207973206E6F742073656E740D0A0D0A"
+#	rxresp
+#	expect resp.status == 200
+#
+#	# the connection is expected to be closed and no more response must
+#	# arrive here.
+#	expect_close
+#} -run
+
+client c1h1 -connect ${h1_feh1_sock} {
+	# first request is valid
+	txreq \
+	  -req "POST" \
+	  -url "/test21.html"
+	rxresp
+	expect resp.status == 200
+
+	# second request is valid and advertises C-L:0
+	txreq \
+	  -req "POST" \
+	  -url "/test22.html" \
+          -hdr "content-length: 0"
+	rxresp
+	expect resp.status == 200
+
+	# third request is valid and advertises (and sends) somme contents
+	txreq \
+	  -req "POST" \
+	  -url "/test23.html" \
+	  -body "this is sent"
+	rxresp
+	expect resp.status == 200
+
+	# fourth request is valid and advertises C-L:0, and close, and is
+	# followed by a string "this is not sent\r\n\r\n" which must be
+	# dropped.
+	txreq \
+	  -req "POST" \
+	  -url "/test24.html" \
+          -hdr "content-length: 0" \
+          -hdr "connection: close"
+	# "this is not sent"
+	sendhex "74787973207973206E6F742073656E740D0A0D0A"
+	rxresp
+	expect resp.status == 200
+
+	# the connection is expected to be closed and no more response must
+	# arrive here.
+	expect_close
+} -run
diff --git a/reg-tests/http-messaging/h00002.vtc b/reg-tests/http-messaging/h00002.vtc
new file mode 100644
index 0000000..0b2daee
--- /dev/null
+++ b/reg-tests/http-messaging/h00002.vtc
@@ -0,0 +1,273 @@
+varnishtest "HTTP request tests: H2 to H1, legacy mode"
+#REQUIRE_VERSION=1.9
+
+# Run it with HAPROXY_PROGRAM=$PWD/haproxy varnishtest -l -k -t 1 "$1"
+
+feature ignore_unknown_macro
+
+# synchronize requests between streams
+barrier b1 cond 2 -cyclic
+barrier b2 cond 2 -cyclic
+barrier b3 cond 2 -cyclic
+barrier b4 cond 2 -cyclic
+
+server s1 {
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 1"
+
+	barrier b2 sync
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 2"
+
+	barrier b3 sync
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 3"
+
+	barrier b4 sync
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 4"
+} -repeat 2 -start
+
+haproxy h1 -conf {
+    defaults
+	#log stdout format raw daemon
+	mode http
+	#option http-use-htx
+	timeout connect 1s
+	timeout client  1s
+	timeout server  1s
+
+    listen feh1
+	bind "fd@${feh1}"
+	bind "fd@${feh2}" proto h2
+	server s1 ${s1_addr}:${s1_port}
+} -start
+
+client c1h2 -connect ${h1_feh2_sock} {
+	txpri
+	stream 0 {
+		txsettings
+		rxsettings
+		txsettings -ack
+		rxwinup
+		rxsettings
+		expect settings.ack == true
+	} -run
+
+	# first request is valid
+	stream 1 {
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test1.html"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 1"
+	} -run
+
+	# second request is valid and advertises C-L:0
+	stream 3 {
+		barrier b2 sync
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test2.html" \
+		  -hdr "content-length" "0"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 2"
+	} -run
+
+	# third request sends a body with a GET
+	stream 5 {
+		barrier b3 sync
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test3.html" \
+		  -nostrend \
+		  -body "this must be delivered, like it or not"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 3"
+	} -run
+
+	# fourth request is valid and advertises C-L:0, and close, and is
+	# followed by a string "this is not sent\r\n\r\n" which must be
+	# dropped.
+	stream 7 {
+		barrier b4 sync
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test4.html" \
+		  -hdr "content-length" "0" \
+		  -nostrend
+		txdata -data "this is sent and ignored"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 4"
+	} -run
+} -run
+
+# HEAD requests : don't work well yet
+#client c2h2 -connect ${h1_feh2_sock} {
+#	txpri
+#	stream 0 {
+#		txsettings
+#		rxsettings
+#		txsettings -ack
+#		rxwinup
+#		rxsettings
+#		expect settings.ack == true
+#	} -run
+#
+#	# first request is valid
+#	stream 1 {
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test11.html"
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#
+#	# second request is valid and advertises C-L:0
+#	stream 3 {
+#		barrier b2 sync
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test12.html" \
+#		  -hdr "content-length" "0"
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#
+#	# third request sends a body with a GET
+#	stream 5 {
+#		barrier b3 sync
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test13.html" \
+#		  -nostrend \
+#		  -body "this must be delivered, like it or not"
+#		rxwinup
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#
+#	# fourth request is valid and advertises C-L:0, and close, and is
+#	# followed by a string "this is not sent\r\n\r\n" which must be
+#	# dropped.
+#	stream 7 {
+#		barrier b4 sync
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test14.html" \
+#		  -hdr "content-length" "0" \
+#		  -nostrend
+#		txdata -data "this is sent and ignored"
+#		rxwinup
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#} -run
+
+# POST requests
+client c3h2 -connect ${h1_feh2_sock} {
+	txpri
+	stream 0 {
+		txsettings
+		rxsettings
+		txsettings -ack
+		rxwinup
+		rxsettings
+		expect settings.ack == true
+	} -run
+
+	# first request is valid
+	stream 1 {
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test21.html"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 1"
+	} -run
+
+	# second request is valid and advertises C-L:0
+	stream 3 {
+		barrier b2 sync
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test22.html" \
+		  -hdr "content-length" "0"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 2"
+	} -run
+
+	# third request sends a body with a GET
+	stream 5 {
+		barrier b3 sync
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test23.html" \
+		  -nostrend \
+		  -body "this must be delivered, like it or not"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 3"
+	} -run
+
+	# fourth request is valid and advertises C-L:0, and close, and is
+	# followed by a string "this is not sent\r\n\r\n" which must be
+	# dropped.
+	stream 7 {
+		barrier b4 sync
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test24.html" \
+		  -hdr "content-length" "0" \
+		  -nostrend
+		txdata -data "this is sent and ignored"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 4"
+	} -run
+} -run
diff --git a/reg-tests/http-messaging/h00003.vtc b/reg-tests/http-messaging/h00003.vtc
new file mode 100644
index 0000000..acb56b0
--- /dev/null
+++ b/reg-tests/http-messaging/h00003.vtc
@@ -0,0 +1,273 @@
+varnishtest "HTTP request tests: H2 to H1, HTX mode"
+#REQUIRE_VERSION=1.9
+
+# Run it with HAPROXY_PROGRAM=$PWD/haproxy varnishtest -l -k -t 1 "$1"
+
+feature ignore_unknown_macro
+
+# synchronize requests between streams
+barrier b1 cond 2 -cyclic
+barrier b2 cond 2 -cyclic
+barrier b3 cond 2 -cyclic
+barrier b4 cond 2 -cyclic
+
+server s1 {
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 1"
+
+	barrier b2 sync
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 2"
+
+	barrier b3 sync
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 3"
+
+	barrier b4 sync
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 4"
+} -repeat 2 -start
+
+haproxy h1 -conf {
+    defaults
+	#log stdout format raw daemon
+	mode http
+	option http-use-htx
+	timeout connect 1s
+	timeout client  1s
+	timeout server  1s
+
+    listen feh1
+	bind "fd@${feh1}"
+	bind "fd@${feh2}" proto h2
+	server s1 ${s1_addr}:${s1_port}
+} -start
+
+client c1h2 -connect ${h1_feh2_sock} {
+	txpri
+	stream 0 {
+		txsettings
+		rxsettings
+		txsettings -ack
+		rxwinup
+		rxsettings
+		expect settings.ack == true
+	} -run
+
+	# first request is valid
+	stream 1 {
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test1.html"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 1"
+	} -run
+
+	# second request is valid and advertises C-L:0
+	stream 3 {
+		barrier b2 sync
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test2.html" \
+		  -hdr "content-length" "0"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 2"
+	} -run
+
+	# third request sends a body with a GET
+	stream 5 {
+		barrier b3 sync
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test3.html" \
+		  -nostrend \
+		  -body "this must be delivered, like it or not"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 3"
+	} -run
+
+	# fourth request is valid and advertises C-L:0, and close, and is
+	# followed by a string "this is not sent\r\n\r\n" which must be
+	# dropped.
+	stream 7 {
+		barrier b4 sync
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test4.html" \
+		  -hdr "content-length" "0" \
+		  -nostrend
+		txdata -data "this is sent and ignored"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 4"
+	} -run
+} -run
+
+# HEAD requests : don't work well yet
+#client c2h2 -connect ${h1_feh2_sock} {
+#	txpri
+#	stream 0 {
+#		txsettings
+#		rxsettings
+#		txsettings -ack
+#		rxwinup
+#		rxsettings
+#		expect settings.ack == true
+#	} -run
+#
+#	# first request is valid
+#	stream 1 {
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test11.html"
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#
+#	# second request is valid and advertises C-L:0
+#	stream 3 {
+#		barrier b2 sync
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test12.html" \
+#		  -hdr "content-length" "0"
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#
+#	# third request sends a body with a GET
+#	stream 5 {
+#		barrier b3 sync
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test13.html" \
+#		  -nostrend \
+#		  -body "this must be delivered, like it or not"
+#		rxwinup
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#
+#	# fourth request is valid and advertises C-L:0, and close, and is
+#	# followed by a string "this is not sent\r\n\r\n" which must be
+#	# dropped.
+#	stream 7 {
+#		barrier b4 sync
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test14.html" \
+#		  -hdr "content-length" "0" \
+#		  -nostrend
+#		txdata -data "this is sent and ignored"
+#		rxwinup
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#} -run
+
+# POST requests
+client c3h2 -connect ${h1_feh2_sock} {
+	txpri
+	stream 0 {
+		txsettings
+		rxsettings
+		txsettings -ack
+		rxwinup
+		rxsettings
+		expect settings.ack == true
+	} -run
+
+	# first request is valid
+	stream 1 {
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test21.html"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 1"
+	} -run
+
+	# second request is valid and advertises C-L:0
+	stream 3 {
+		barrier b2 sync
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test22.html" \
+		  -hdr "content-length" "0"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 2"
+	} -run
+
+	# third request sends a body with a GET
+	stream 5 {
+		barrier b3 sync
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test23.html" \
+		  -nostrend \
+		  -body "this must be delivered, like it or not"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 3"
+	} -run
+
+	# fourth request is valid and advertises C-L:0, and close, and is
+	# followed by a string "this is not sent\r\n\r\n" which must be
+	# dropped.
+	stream 7 {
+		barrier b4 sync
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test24.html" \
+		  -hdr "content-length" "0" \
+		  -nostrend
+		txdata -data "this is sent and ignored"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 4"
+	} -run
+} -run
