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.hdr == <undef>
    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.hdr == <undef>
    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.hdr == <undef>
    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 1s
        timeout server 1s
        timeout connect 200ms
        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 1s
        timeout server 1s
        timeout connect 200ms
        option httpchk GET /status HTTP/1.1\r\nHdr:\ must-be-removed
        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
