REGTESTS: complete http-check test

Add a new check for a pseudo-websocket handshake, specifying the
Connection header to verify if it is properly handled by http-check send
directive. Also check that default http/1.1 checks have the header
Connection: close.
This commit is contained in:
Amaury Denoyelle 2020-12-22 14:08:53 +01:00 committed by Willy Tarreau
parent 6d975f0af6
commit 39ff8c519c
1 changed files with 28 additions and 0 deletions

View File

@ -19,6 +19,7 @@ server s2 {
expect req.method == GET expect req.method == GET
expect req.url == /test expect req.url == /test
expect req.proto == HTTP/1.1 expect req.proto == HTTP/1.1
expect req.http.connection == "close"
txresp txresp
} -start } -start
@ -39,6 +40,7 @@ server s4 {
expect req.method == GET expect req.method == GET
expect req.url == /status expect req.url == /status
expect req.proto == HTTP/1.1 expect req.proto == HTTP/1.1
expect req.http.connection == "close"
expect req.http.hdr == <undef> expect req.http.hdr == <undef>
expect req.http.host == "my-www-host" expect req.http.host == "my-www-host"
expect req.http.x-test == true expect req.http.x-test == true
@ -63,6 +65,20 @@ server s5 {
txresp txresp
} -start } -start
server s6 {
rxreq
expect req.method == GET
expect req.url == /
expect req.proto == HTTP/1.1
expect req.http.host == "ws-host"
expect req.http.connection == "upgrade"
expect req.http.upgrade == "websocket"
txresp \
-status 101 \
-hdr "connection: upgrade" \
-hdr "upgrade: websocket"
} -start
syslog S1 -level notice { syslog S1 -level notice {
recv recv
@ -89,6 +105,11 @@ syslog S5 -level notice {
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be5/srv succeeded.*code: 200" expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be5/srv succeeded.*code: 200"
} -start } -start
syslog S6 -level notice {
recv
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be6_ws/srv succeeded.*code: 101"
} -start
haproxy h1 -conf { haproxy h1 -conf {
defaults defaults
@ -131,6 +152,12 @@ haproxy h1 -conf {
http-check send hdr Host "other-www-host" hdr X-New-Test true body "other test" http-check send hdr Host "other-www-host" hdr X-New-Test true body "other test"
server srv ${s5_addr}:${s5_port} check inter 200ms rise 1 fall 1 server srv ${s5_addr}:${s5_port} check inter 200ms rise 1 fall 1
backend be6_ws
log ${S6_addr}:${S6_port} len 2048 local0
http-check send meth GET uri / ver HTTP/1.1 hdr host ws-host hdr connection upgrade hdr upgrade websocket
http-check expect status 101
server srv ${s6_addr}:${s6_port} check inter 200ms rise 1 fall 1
} -start } -start
syslog S1 -wait syslog S1 -wait
@ -138,3 +165,4 @@ syslog S2 -wait
syslog S3 -wait syslog S3 -wait
syslog S4 -wait syslog S4 -wait
syslog S5 -wait syslog S5 -wait
syslog S6 -wait