varnishtest "Health-checks: http-check send test"
#REGTEST_TYPE=slow
#REQUIRE_VERSION=2.4
feature ignore_unknown_macro

# This script tests HTTP health-checks and more particularly the "http-check
# send" directive.

server s1 {
    rxreq
    expect req.method == OPTIONS
    expect req.url == /
    expect req.proto == HTTP/1.0
    txresp
} -start

server s2 {
    rxreq
    expect req.method == GET
    expect req.url == /test
    expect req.proto == HTTP/1.1
    expect req.http.connection == "close"
    txresp
} -start

server s3 {
    rxreq
    expect req.method == OPTIONS
    expect req.url == /
    expect req.proto == HTTP/1.0
    expect req.http.host == <undef>
    expect req.http.x-test == <undef>
    expect req.bodylen == 0
    txresp
} -start

server s4 {
    rxreq
    expect req.method == GET
    expect req.url == /status
    expect req.proto == HTTP/1.1
    expect req.http.connection == "close"
    expect req.http.host == "my-www-host"
    expect req.http.x-test == true
    expect req.http.content-length == 4
    expect req.bodylen == 4
    expect req.body == "test"
    txresp
} -start

server s5 {
    rxreq
    expect req.method == OPTIONS
    expect req.url == /
    expect req.proto == HTTP/1.0
    expect req.http.host == "other-www-host"
    expect req.http.x-test == <undef>
    expect req.http.x-new-test == true
    expect req.http.content-length == 10
    expect req.bodylen == 10
    expect req.body == "other test"
    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 be1/srv succeeded.*code: 200"
} -start

syslog S2 -level notice {
    recv
    expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be2/srv succeeded.*code: 200"
} -start

syslog S3 -level notice {
    recv
    expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be3/srv succeeded.*code: 200"
} -start

syslog S4 -level notice {
    recv
    expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be4/srv succeeded.*code: 200"
} -start

syslog S5 -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
        mode http
        timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
        timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
        timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
        option httpchk
        option log-health-checks

    backend be1
        log ${S1_addr}:${S1_port} len 2048 local0
        server srv ${s1_addr}:${s1_port} check inter 200ms rise 1 fall 1

    backend be2
        log ${S2_addr}:${S2_port} len 2048 local0
        option httpchk GET /test HTTP/1.1
        server srv ${s2_addr}:${s2_port} check inter 200ms rise 1 fall 1

    defaults
        mode http
        timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
        timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
        timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
        option httpchk GET /status HTTP/1.1
        option log-health-checks
        http-check send hdr Host "my-www-host" hdr X-test true body "test"

    backend be3
        option httpchk
        log ${S3_addr}:${S3_port} len 2048 local0
        server srv ${s3_addr}:${s3_port} check inter 200ms rise 1 fall 1

    backend be4
        log ${S4_addr}:${S4_port} len 2048 local0
        server srv ${s4_addr}:${s4_port} check inter 200ms rise 1 fall 1

    backend be5
        log ${S5_addr}:${S5_port} len 2058 local0
        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 S2 -wait
syslog S3 -wait
syslog S4 -wait
syslog S5 -wait
syslog S6 -wait
