mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 15:17:01 +02:00
Now that warnings were almost all removed, let's enable zero-warning via -dW. All tests were adjusted, but two: - mcli/mcli_start_progs.vtc: the programs section currently cannot be silenced - stats/stats-file.vtc: the warning comes from the stats file itself on comment lines. All other ones are now OK.
126 lines
2.4 KiB
Plaintext
126 lines
2.4 KiB
Plaintext
varnishtest "scheme based normalization (rfc3982 6.3.2)"
|
|
|
|
feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.5-dev0)'"
|
|
feature ignore_unknown_macro
|
|
|
|
syslog S1 -level info {
|
|
recv
|
|
expect ~ "^.* uri: GET http://hostname/ HTTP/2.0; host: {hostname}$"
|
|
|
|
recv
|
|
expect ~ "^.* uri: GET http://hostname:8080/ HTTP/2.0; host: {hostname:8080}$"
|
|
|
|
recv
|
|
expect ~ "^.* uri: GET https://hostname/ HTTP/2.0; host: {hostname}$"
|
|
|
|
recv
|
|
expect ~ "^.* uri: GET https://hostname:80/ HTTP/2.0; host: {hostname:80}$"
|
|
} -start
|
|
|
|
haproxy h1 -arg '-dW' -conf {
|
|
defaults
|
|
mode http
|
|
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
|
|
frontend fe
|
|
bind "fd@${fe}" proto h2
|
|
|
|
http-request capture req.hdr(host) len 512
|
|
log-format "uri: %r; host: %hr"
|
|
log ${S1_addr}:${S1_port} len 2048 local0 debug err
|
|
|
|
http-request return status 200
|
|
} -start
|
|
|
|
# default port 80 with http scheme => should be normalized
|
|
client c1 -connect ${h1_fe_sock} {
|
|
txpri
|
|
stream 0 {
|
|
txsettings
|
|
rxsettings
|
|
txsettings -ack
|
|
rxsettings
|
|
expect settings.ack == true
|
|
} -run
|
|
|
|
stream 1 {
|
|
txreq \
|
|
-req "GET" \
|
|
-scheme "http" \
|
|
-url "/" \
|
|
-hdr ":authority" "hostname:80"
|
|
rxhdrs
|
|
expect resp.status == 200
|
|
} -run
|
|
} -run
|
|
|
|
# port 8080 with http scheme => no normalization
|
|
client c2 -connect ${h1_fe_sock} {
|
|
txpri
|
|
stream 0 {
|
|
txsettings
|
|
rxsettings
|
|
txsettings -ack
|
|
rxsettings
|
|
expect settings.ack == true
|
|
} -run
|
|
|
|
stream 1 {
|
|
txreq \
|
|
-req "GET" \
|
|
-scheme "http" \
|
|
-url "/" \
|
|
-hdr ":authority" "hostname:8080"
|
|
rxhdrs
|
|
expect resp.status == 200
|
|
} -run
|
|
} -run
|
|
|
|
# default port 443 with https scheme => should be normalized
|
|
client c3 -connect ${h1_fe_sock} {
|
|
txpri
|
|
stream 0 {
|
|
txsettings
|
|
rxsettings
|
|
txsettings -ack
|
|
rxsettings
|
|
expect settings.ack == true
|
|
} -run
|
|
|
|
stream 1 {
|
|
txreq \
|
|
-req "GET" \
|
|
-scheme "https" \
|
|
-url "/" \
|
|
-hdr ":authority" "hostname:443"
|
|
rxhdrs
|
|
expect resp.status == 200
|
|
} -run
|
|
} -run
|
|
|
|
# port 80 with https scheme => no normalization
|
|
client c4 -connect ${h1_fe_sock} {
|
|
txpri
|
|
stream 0 {
|
|
txsettings
|
|
rxsettings
|
|
txsettings -ack
|
|
rxsettings
|
|
expect settings.ack == true
|
|
} -run
|
|
|
|
stream 1 {
|
|
txreq \
|
|
-req "GET" \
|
|
-scheme "https" \
|
|
-url "/" \
|
|
-hdr ":authority" "hostname:80"
|
|
rxhdrs
|
|
expect resp.status == 200
|
|
} -run
|
|
} -run
|
|
|
|
syslog S1 -wait
|