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
|