haproxy/reg-tests/http-rules/acl_cli_spaces.vtc
Valentine Krasnobaeva 5bbcdc003a REGTESTS: cli: add delay 0.1 before connect to cli
When vtest starts haproxy process, it loops until the moment, when haproxy
pidfile is created. When pidfile is created, vtest considers that haproxy
process is ready and it starts to perform test commands, in particular, it
connects to CLI. It's not very reliable approach to base the check of the
process readiness on the PID file. After master-worker architecture
refactoring pidfile is created in the early init stage, but master and worker
are not yet finished its initialization routines. So, all mcli tests and some
tests where we sent commands to CLI start to fail regularly.

In vtest at the moment there is no any other approach to check that the
process is really ready. So let's add a delay 0.1s before connecting to CLI in
all mcli tests and in acl_cli_spaces test.
2024-10-16 22:00:58 +02:00

79 lines
1.6 KiB
Plaintext

varnishtest "haproxy ACL, CLI and mCLI spaces"
feature ignore_unknown_macro
server s1 {
rxreq
expect req.method == "GET"
txresp
} -repeat 2 -start
haproxy h1 -W -S -conf {
defaults
mode http
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
frontend fe1
bind "fd@${fe1}"
http-request deny if { req.hdr(user-agent) -i -m str -f ${testdir}/agents.acl }
default_backend be1
backend be1
server s1 ${s1_addr}:${s1_port}
} -start
client c1 -connect ${h1_fe1_sock} {
txreq -hdr "User-Agent: Mon User Agent"
rxresp
expect resp.status == 200
} -run
haproxy h1 -cli {
delay 0.1
send "add acl ${testdir}/agents.acl Mon\\ User\\ Agent\\;"
expect ~ .*
send "show acl ${testdir}/agents.acl"
expect ~ ".*Mon User Agent.*"
}
client c1 -connect ${h1_fe1_sock} {
txreq -hdr "User-Agent: Mon User Agent;"
rxresp
expect resp.status == 403
} -run
haproxy h1 -cli {
delay 0.1
send "del acl ${testdir}/agents.acl Mon\\ User\\ Agent\\;"
expect ~ .*
send "show acl ${testdir}/agents.acl"
expect ~ .*
}
client c1 -connect ${h1_fe1_sock} {
txreq -hdr "User-Agent: Mon User Agent;"
rxresp
expect resp.status == 200
} -run
# Try it with the master CLI
haproxy h1 -mcli {
delay 0.1
send "@1 add acl ${testdir}/agents.acl Mon\\ User\\ Agent\\;;@1 show acl ${testdir}/agents.acl"
expect ~ ".*Mon User Agent;.*"
}
client c1 -connect ${h1_fe1_sock} {
txreq -hdr "User-Agent: Mon User Agent;"
rxresp
expect resp.status == 403
} -run