mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-12 14:35:14 +00:00
d37610f43d
No less than 30 tests were missing timeouts, preventing them from being started with zero-warning. Since they were not supposed to trigger, they have been set to 30s so as never to trigger, and now they do not produce any warning anymore.
118 lines
2.1 KiB
Plaintext
118 lines
2.1 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 -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
|