varnishtest "Health-checks: http-check send test"
#REGTEST_TYPE=slow
-#REQUIRE_VERSION=2.2
+#REQUIRE_VERSION=2.4
feature ignore_unknown_macro
# This script tests HTTP health-checks and more particularly the "http-check
expect req.method == GET
expect req.url == /test
expect req.proto == HTTP/1.1
- expect req.http.connection == "close"
txresp
} -start
expect req.method == GET
expect req.url == /status
expect req.proto == HTTP/1.1
- expect req.http.connection == "close"
expect req.http.hdr == <undef>
expect req.http.host == "my-www-host"
expect req.http.x-test == true
txresp
} -start
-server s6 {
- rxreq
- expect req.method == GET
- expect req.url == /
- expect req.proto == HTTP/1.1
- expect req.http.host == "ws-host"
- expect req.http.connection == "upgrade"
- expect req.http.upgrade == "raw-proto"
- txresp \
- -status 101 \
- -hdr "connection: upgrade" \
- -hdr "upgrade: raw-proto"
-} -start
-
syslog S1 -level notice {
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be5/srv succeeded.*code: 200"
} -start
-syslog S6 -level notice {
- recv
- expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be6_ws/srv succeeded.*code: 101"
-} -start
-
haproxy h1 -conf {
defaults
http-check send hdr Host "other-www-host" hdr X-New-Test true body "other test"
server srv ${s5_addr}:${s5_port} check inter 200ms rise 1 fall 1
- backend be6_ws
- log ${S6_addr}:${S6_port} len 2048 local0
- http-check send meth GET uri / ver HTTP/1.1 hdr host ws-host hdr connection upgrade hdr upgrade raw-proto
- http-check expect status 101
- server srv ${s6_addr}:${s6_port} check inter 200ms rise 1 fall 1
-
} -start
syslog S1 -wait
syslog S3 -wait
syslog S4 -wait
syslog S5 -wait
-syslog S6 -wait