varnishtest "HTTP request tests: H1 request target parsing" feature ignore_unknown_macro #REQUIRE_VERSION=3.0 haproxy h1 -conf { global # WT: limit false-positives causing "HTTP header incomplete" due to # idle server connections being randomly used and randomly expiring # under us. tune.idle-pool.shared off defaults mode http timeout connect "${HAPROXY_TEST_TIMEOUT-5s}" timeout client "${HAPROXY_TEST_TIMEOUT-5s}" timeout server "${HAPROXY_TEST_TIMEOUT-5s}" listen li1 bind "fd@${li1}" http-request return status 200 } -start client c1 -connect ${h1_li1_sock} { txreq -req "OPTIONS" -url "*" rxresp expect resp.status == 200 } -run client c2 -connect ${h1_li1_sock} { txreq -req "OPTIONS" -url "/" rxresp expect resp.status == 200 } -run client c3 -connect ${h1_li1_sock} { txreq -req "OPTIONS" -url "http://haproxy.org" \ -hdr "Host: haproxy.org" rxresp expect resp.status == 200 } -run client c4 -connect ${h1_li1_sock} { txreq -req "OPTIONS" -url "*/test" rxresp expect resp.status == 400 } -run client c5 -connect ${h1_li1_sock} { txreq -req "GET" -url "*" rxresp expect resp.status == 400 } -run client c6 -connect ${h1_li1_sock} { txreq -req "CONNECT" -url "haproxy.org:80" \ -hdr "Host: haproxy.org" rxresp expect resp.status == 200 } -run client c7 -connect ${h1_li1_sock} { txreq -req "CONNECT" -url "haproxy.org" \ -hdr "Host: haproxy.org" rxresp expect resp.status == 400 } -run client c8 -connect ${h1_li1_sock} { txreq -req "CONNECT" -url "/" rxresp expect resp.status == 400 } -run client c9 -connect ${h1_li1_sock} { txreq -req "CONNECT" -url "http://haproxy.org:80" \ -hdr "Host: haproxy.org" rxresp expect resp.status == 400 } -run client c11 -connect ${h1_li1_sock} { txreq -req "GET" -url "/" \ -hdr "Host: haproxy.org" rxresp expect resp.status == 200 } -run client c12 -connect ${h1_li1_sock} { txreq -req "GET" -url "haproxy.org:80" \ -hdr "Host: haproxy.org" rxresp expect resp.status == 400 } -run client c13 -connect ${h1_li1_sock} { txreq -req "GET" -url "admin" rxresp expect resp.status == 400 } -run client c14 -connect ${h1_li1_sock} { txreq -req "GET" -url "admin/a/b" rxresp expect resp.status == 400 } -run