mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-24 22:43:02 +00:00
9d511b3c27
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.
118 lines
2.2 KiB
Plaintext
118 lines
2.2 KiB
Plaintext
# This test verifies that H2 anomalies counted as glitches are properly detected
|
|
# and fetched.
|
|
|
|
varnishtest "h2 glitches"
|
|
feature ignore_unknown_macro
|
|
|
|
# haproxy frontend
|
|
haproxy hap -arg '-dW' -conf {
|
|
defaults
|
|
timeout client 30s
|
|
timeout server 30s
|
|
timeout connect 30s
|
|
mode http
|
|
|
|
listen fe1
|
|
bind "fd@${fe1}" proto h2
|
|
tcp-request session track-sc0 src
|
|
http-request return status 200 hdr x-glitches %[fc_glitches] hdr x-glitch-cnt %[sc0_glitch_cnt] hdr x-glitch-rate %[sc0_glitch_rate]
|
|
stick-table type ip size 10 store glitch_cnt,glitch_rate(1m)
|
|
} -start
|
|
|
|
# valid request: no glitch
|
|
client c1 -connect ${hap_fe1_sock} {
|
|
txpri
|
|
stream 0 {
|
|
txsettings
|
|
rxsettings
|
|
txsettings -ack
|
|
rxsettings
|
|
expect settings.ack == true
|
|
} -run
|
|
|
|
stream 1 {
|
|
txreq \
|
|
-method "GET" \
|
|
-scheme "http" \
|
|
-url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.x-glitches == 0
|
|
} -run
|
|
|
|
stream 3 {
|
|
txreq \
|
|
-method "GET" \
|
|
-scheme "http" \
|
|
-url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.x-glitches == 0
|
|
} -run
|
|
} -run
|
|
|
|
# invalid path: => req decoding error => glitch++
|
|
client c2-path -connect ${hap_fe1_sock} {
|
|
txpri
|
|
stream 0 {
|
|
txsettings
|
|
rxsettings
|
|
txsettings -ack
|
|
rxsettings
|
|
expect settings.ack == true
|
|
} -run
|
|
|
|
stream 1 {
|
|
txreq \
|
|
-method "GET" \
|
|
-scheme "http" \
|
|
-url "hello-world"
|
|
rxrst
|
|
} -run
|
|
|
|
stream 3 {
|
|
txreq \
|
|
-method "GET" \
|
|
-scheme "http" \
|
|
-url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.x-glitches == 1
|
|
expect resp.http.x-glitch-cnt == 1
|
|
expect resp.http.x-glitch-rate == 1
|
|
} -run
|
|
} -run
|
|
|
|
# invalid scheme: blocked at HTX layer, not counted
|
|
client c3-scheme -connect ${hap_fe1_sock} {
|
|
txpri
|
|
stream 0 {
|
|
txsettings
|
|
rxsettings
|
|
txsettings -ack
|
|
rxsettings
|
|
expect settings.ack == true
|
|
} -run
|
|
|
|
stream 1 {
|
|
txreq \
|
|
-method "GET" \
|
|
-scheme "http://localhost/?" \
|
|
-url "/"
|
|
rxresp
|
|
expect resp.status == 400
|
|
} -run
|
|
|
|
stream 3 {
|
|
txreq \
|
|
-method "GET" \
|
|
-scheme "http" \
|
|
-url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.x-glitches == 0
|
|
expect resp.http.x-glitch-cnt == 1
|
|
expect resp.http.x-glitch-rate == 1
|
|
} -run
|
|
} -run
|