mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-24 13:42:16 +00:00
292619fc90
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.
166 lines
4.6 KiB
Plaintext
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
|