haproxy/reg-tests/proxy/cli_del_backend.vtc
Amaury Denoyelle e07a75c764 REGTESTS: complete "del backend" with unnamed defaults ref free
Complete delete backend regtests by checking deletion of a proxy with a
reference on an unnamed defaults instance. This operation is sensible as
the defaults refcount is decremented, and when the last backend is
removed, the defaults is also freed.
2026-03-02 14:15:53 +01:00

89 lines
2.1 KiB
Plaintext

varnishtest "Delete backend via cli"
feature ignore_unknown_macro
haproxy h1 -conf {
global
.if feature(THREAD)
thread-groups 1
.endif
defaults
mode http
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
frontend fe
bind "fd@${feS}"
use_backend be_ref
listen li
bind "fd@${feli}"
backend be_ref
backend be
server s1 ${s1_addr}:${s1_port} disabled
# Defaults with tcp-check rules in it
# Currently this is the only case of runtime ref on an unnamed default
defaults
mode http
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
option httpchk GET / HTTP/1.1
backend be_unnamed_def_ref
backend be_unnamed_def_ref2
} -start
haproxy h1 -cli {
send "experimental-mode on; del backend other"
expect ~ "No such backend."
send "experimental-mode on; del backend li"
expect ~ "Cannot delete a listen section."
send "experimental-mode on; del backend be_ref"
expect ~ "This proxy cannot be removed at runtime due to other configuration elements pointing to it."
send "show stat be 2 -1"
expect ~ "be,BACKEND,"
send "experimental-mode on; del backend be"
expect ~ "Backend must be unpublished prior to its deletion."
send "unpublish backend be;"
expect ~ ".*"
send "experimental-mode on; del backend be"
expect ~ "Only a backend without server can be deleted."
send "del server be/s1"
expect ~ ".*"
send "experimental-mode on; del backend be"
expect ~ "Backend deleted."
send "show stat be 2 -1"
expect !~ "be,BACKEND,"
}
haproxy h1 -cli {
send "show stat be_unnamed_def_ref 2 -1"
expect ~ "be_unnamed_def_ref,BACKEND,"
send "unpublish backend be_unnamed_def_ref;"
expect ~ ".*"
send "experimental-mode on; del backend be_unnamed_def_ref"
expect ~ "Backend deleted."
send "show stat be_unnamed_def_ref 2 -1"
expect !~ "be_unnamed_def_ref,BACKEND,"
send "unpublish backend be_unnamed_def_ref2;"
expect ~ ".*"
send "experimental-mode on; del backend be_unnamed_def_ref2"
expect ~ "Backend deleted."
}