mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-11 22:15:14 +00:00
109 lines
1.8 KiB
Plaintext
109 lines
1.8 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
|
||
|
mode http
|
||
|
|
||
|
listen fe1
|
||
|
bind "fd@${fe1}" proto h2
|
||
|
http-request return status 200 hdr x-glitches %[fc_glitches]
|
||
|
} -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
|
||
|
} -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
|
||
|
} -run
|
||
|
} -run
|