diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:20:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:20:34 +0000 |
commit | f3bb08bb1d94c77704371f8546a739119f0a05b4 (patch) | |
tree | 5dfb47fa424ecde655f8950098411a311e9296e6 /reg-tests/connection | |
parent | Releasing progress-linux version 2.9.6-1~progress7.99u1. (diff) | |
download | haproxy-f3bb08bb1d94c77704371f8546a739119f0a05b4.tar.xz haproxy-f3bb08bb1d94c77704371f8546a739119f0a05b4.zip |
Merging upstream version 2.9.7.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'reg-tests/connection')
-rw-r--r-- | reg-tests/connection/h2_glitches.vtc | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/reg-tests/connection/h2_glitches.vtc b/reg-tests/connection/h2_glitches.vtc new file mode 100644 index 0000000..39ec4d6 --- /dev/null +++ b/reg-tests/connection/h2_glitches.vtc @@ -0,0 +1,108 @@ +# 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 |