haproxy/reg-tests/log/last_rule.vtc
Christopher Faulet 292619fc90 REGTESTS: log: Reduce again response inspect-delay for last_rule.vtc
It was previously reduced from 10s to 1s but it remains too high, espeically
for the CI. It may be drastically reduced to 100ms. Idea is to just be sure
we will wait for the response before evaluating the TCP rules.
2023-05-17 11:12:25 +02:00

166 lines
4.6 KiB
Plaintext

varnishtest "Verify logging of last final rule"
feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.6-dev0)'"
feature ignore_unknown_macro
server s1 {
rxreq
txresp
} -repeat 15 -start
syslog Slg_1 -level info {
recv
# /trqacc1
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:30"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:31"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:32"
recv
# /trsacc1
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:36"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:37"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:38"
recv
# /hrqvar
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*-:-"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:41"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:42"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:43"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:44"
recv
# /hrsacc1
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:46"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:47"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:48"
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* lr=.*/h1/cfg:49"
} -start
haproxy h1 -conf {
global
nbthread 1
defaults
mode http
option httplog
option http-server-close
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
frontend fe1
bind "fd@${fe_1}"
log ${Slg_1_addr}:${Slg_1_port} local0
log-format "ci:%cp [%tr] lr=%[last_rule_file]:%[last_rule_line]"
default_backend be
backend be
# handle these URLs:
# /trqacc1, /trqrej1, /trqrej2, /trsacc1, /trsrej1, /trsrej2
# /hrqvar, /hrqacc1, /hrqred1, /hrqrej1, /hrqrej2,
# /hrsacc1, /hrsred1, /hrsrej1, /hrsrej2
tcp-response inspect-delay 100ms
tcp-request content set-var(txn.path) path # must have no effect
tcp-request content accept if { var(txn.path) -m beg /trqacc1 /hrqrej1 }
tcp-request content reject if { var(txn.path) -m beg /trqrej1 }
tcp-request content reject if { var(txn.path) -m beg /trqrej2 }
tcp-response content reject unless WAIT_END
tcp-response content set-var(txn.foo) var(txn.path) # must have no effect
tcp-response content accept if { var(txn.path) -m beg /trsacc1 /hrsrej1 }
tcp-response content reject if { var(txn.path) -m beg /trsrej1 }
tcp-response content reject if { var(txn.path) -m beg /trsrej2 }
http-request set-var(txn.bar) var(txn.path) if { path_beg /hrqvar } # must have no effect
http-request allow if { var(txn.path) -m beg /hrqacc1 /hrsrej2 }
http-request redirect location / if { var(txn.path) -m beg /hrqred1 }
http-request deny if { var(txn.path) -m beg /hrqrej1 } # accepted by tcp-rq above
http-request deny if { var(txn.path) -m beg /hrqrej2 }
http-response allow if { var(txn.path) -m beg /hrsacc1 }
http-response redirect location / if { var(txn.path) -m beg /hrsred1 }
http-response deny if { var(txn.path) -m beg /hrsrej1 } # accepted by tcp-rs above
http-response deny if { var(txn.path) -m beg /hrsrej2 } # accepted by http-rq above
http-response deny if { var(txn.path) -m beg /hrsrej3 }
server app1 ${s1_addr}:${s1_port}
} -start
client c1 -connect ${h1_fe_1_sock} {
txreq -url /trqacc1
rxresp
txreq -url /trqrej1
expect_close
} -run
# The following client are started in background and synchronized
client c2 -connect ${h1_fe_1_sock} {
txreq -url /trqrej2
expect_close
} -run
client c3 -connect ${h1_fe_1_sock} {
txreq -url /trsacc1
rxresp
expect resp.status == 200
txreq -url /trsrej1
expect_close
} -run
client c4 -connect ${h1_fe_1_sock} {
txreq -url /trsrej2
expect_close
} -run
client c5 -connect ${h1_fe_1_sock} {
txreq -url /hrqvar
rxresp
expect resp.status == 200
txreq -url /hrqacc1
rxresp
expect resp.status == 200
txreq -url /hrqred1
rxresp
expect resp.status == 302
txreq -url /hrqrej1
rxresp
expect resp.status == 403
txreq -url /hrqrej2
rxresp
expect resp.status == 403
txreq -url /hrsacc1
rxresp
expect resp.status == 200
txreq -url /hrsred1
rxresp
expect resp.status == 302
txreq -url /hrsrej1
rxresp
expect resp.status == 502
txreq -url /hrsrej2
rxresp
expect resp.status == 502
} -run
syslog Slg_1 -wait