varnishtest "Validate proper operation of the 'dispatch' mode"
feature ignore_unknown_macro

server s1 {
    rxreq
    txresp
} -start

server s2 {
    rxreq
    txresp
} -start

haproxy h1 -conf {
global
    .if feature(THREAD)
        thread-groups 1
    .endif

    # this is needed since 3.3, and this test will be removed in 3.5.
    expose-deprecated-directives

defaults
    log global
    timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
    timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
    timeout server "${HAPROXY_TEST_TIMEOUT-5s}"

listen fe_tcp
    bind "fd@${fe_tcp}"
    mode tcp
    dispatch ${s1_addr}:${s1_port}

listen fe_http
    bind "fd@${fe_http}"
    mode http
    dispatch ${s2_addr}:${s2_port}
} -start

client c1 -connect ${h1_fe_tcp_sock} {
    txreq -url "/"
    rxresp
    expect resp.status == 200
} -run

client c2 -connect ${h1_fe_http_sock} {
    txreq -url "/"
    rxresp
    expect resp.status == 200
} -run
