varnishtest "Set server ssl via CLI"

feature ignore_unknown_macro

# for "set server <srv> ssl"
#REQUIRE_VERSION=2.4
#REGTEST_TYPE=devel
#REQUIRE_OPTIONS=OPENSSL

# Do nothing. Is there only to create s1_* macros
server s1 {
} -start

haproxy h1 -conf {
    global
        ssl-server-verify none

    defaults
        mode http
        timeout connect 1s
        timeout client  1s
        timeout server  1s

    frontend myfrontend
        bind "fd@${my_fe}"
        default_backend test0

    backend test0
        default-server ssl
        server www0 ${s1_addr}:${s1_port} no-ssl

    backend test1
        server www0 ${s1_addr}:${s1_port} no-ssl
} -start

haproxy h1 -cli {
    # supported case
    send "show servers state test0"
    expect ~ "test0 1 www0 ${s1_addr} .* - ${s1_port} - -1"
    send "set server test0/www0 ssl on"
    expect ~ "server ssl setting updated"
    send "show servers state test0"
    expect ~ "test0 1 www0 ${s1_addr} .* - ${s1_port} - 1"
    send "set server test0/www0 ssl off"
    expect ~ "server ssl setting updated"
    send "show servers state test0"
    expect ~ "test0 1 www0 ${s1_addr} .* - ${s1_port} - 0"

    # unsupported case
    send "show servers state test1"
    expect ~ "test1 1 www0 ${s1_addr} .* - ${s1_port} - -1"
    send "set server test1/www0 ssl on"
    expect ~ "'set server <srv> ssl' cannot be set"
} -wait
