REGTESTS: write a full reverse regtest
This test instantiates two haproxy instances : * first one uses a reverse server with two bind pub and priv * second one uses a reverse bind to initiate connection to priv endpoint On startup, only first haproxy instance is up. A client send a request to pub endpoint and should receive a HTTP 503 as no connection are available on the reverse server. Second haproxy instance is started. A delay of 3 seconds is inserted to wait for the connection between the two LBs. Then a client retry the request and this time should receive a HTTP 200 reusing the bootstrapped connection.
This commit is contained in:
parent
5053e89142
commit
36d936dd15
|
@ -0,0 +1,64 @@
|
|||
varnishtest "Reverse connect full test"
|
||||
feature ignore_unknown_macro
|
||||
|
||||
#REQUIRE_VERSION=2.9
|
||||
|
||||
server s1 {
|
||||
rxreq
|
||||
txresp
|
||||
} -start
|
||||
|
||||
haproxy h_edge -conf {
|
||||
defaults
|
||||
log global
|
||||
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
mode http
|
||||
|
||||
frontend pub
|
||||
bind "fd@${pub}"
|
||||
use_backend be-reverse
|
||||
|
||||
backend be-reverse
|
||||
server dev @reverse
|
||||
|
||||
frontend priv
|
||||
bind "fd@${priv}" proto h2
|
||||
tcp-request session attach-srv be-reverse/dev
|
||||
} -start
|
||||
|
||||
haproxy h_dev -conf {
|
||||
defaults
|
||||
log global
|
||||
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
mode http
|
||||
|
||||
frontend fe
|
||||
bind "rev@be-pre-connect/srv" maxconn 1
|
||||
use_backend be
|
||||
|
||||
backend be-pre-connect
|
||||
server srv ${h_edge_priv_addr}:${h_edge_priv_port} proto h2
|
||||
|
||||
backend be
|
||||
server srv ${s1_addr}:${s1_port}
|
||||
}
|
||||
|
||||
client c1 -connect ${h_edge_pub_sock} {
|
||||
txreq -url "/"
|
||||
rxresp
|
||||
expect resp.status == 503
|
||||
} -run
|
||||
|
||||
haproxy h_dev -start
|
||||
# TODO replace delay by a proper wait
|
||||
delay 3
|
||||
|
||||
client c1 -connect ${h_edge_pub_sock} {
|
||||
txreq -url "/"
|
||||
rxresp
|
||||
expect resp.status == 200
|
||||
} -run
|
Loading…
Reference in New Issue