diff options
Diffstat (limited to '')
-rw-r--r-- | reg-tests/http-cookies/cookie_insert_indirect.vtc | 54 | ||||
-rw-r--r-- | reg-tests/http-cookies/h2_cookie_concat.vtc | 42 |
2 files changed, 96 insertions, 0 deletions
diff --git a/reg-tests/http-cookies/cookie_insert_indirect.vtc b/reg-tests/http-cookies/cookie_insert_indirect.vtc new file mode 100644 index 0000000..6b86360 --- /dev/null +++ b/reg-tests/http-cookies/cookie_insert_indirect.vtc @@ -0,0 +1,54 @@ +varnishtest "HTTP cookie basic test" +feature ignore_unknown_macro + +# This script tests "cookie <name> insert indirect" directive. +# The client sends a wrong "SRVID=s2" cookie. +# haproxy removes it. +# The server replies with "SRVID=S1" after having checked that +# no cookies were sent by haproxy. +# haproxy replies "SRVID=server-one" to the client. +# We log the HTTP request to a syslog server and check their "--II" +# (invalid, insert) flags. + +syslog S1 -level notice { + recv info + expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* fe1 be1/srv1 .* --II .* \"GET / HTTP/1\\.1\"" +} -start + +server s1 { + rxreq + expect req.http.cookie == <undef> + txresp -hdr "Cookie: SRVID=S1" +} -start + +haproxy h1 -conf { + global + log ${S1_addr}:${S1_port} len 2048 local0 debug err + + defaults + mode http + option httplog + timeout client "${HAPROXY_TEST_TIMEOUT-5s}" + timeout server "${HAPROXY_TEST_TIMEOUT-5s}" + timeout connect "${HAPROXY_TEST_TIMEOUT-5s}" + log global + + backend be1 + cookie SRVID insert indirect + server srv1 ${s1_addr}:${s1_port} cookie server-one + + frontend fe1 + option httplog + bind "fd@${fe1}" + use_backend be1 +} -start + +client c1 -connect ${h1_fe1_sock} { + txreq -hdr "Cookie: SRVID=s2" + rxresp + expect resp.http.Set-Cookie ~ "^SRVID=server-one;.*" +} -start + + +client c1 -wait +syslog S1 -wait diff --git a/reg-tests/http-cookies/h2_cookie_concat.vtc b/reg-tests/http-cookies/h2_cookie_concat.vtc new file mode 100644 index 0000000..e2e6d81 --- /dev/null +++ b/reg-tests/http-cookies/h2_cookie_concat.vtc @@ -0,0 +1,42 @@ +varnishtest "HTTP/2 cookie concatenation" +feature ignore_unknown_macro + +server s1 { + rxreq + expect req.http.cookie == "c1=foo; c2=bar; c3=baz" + txresp +} -start + +haproxy h1 -conf { + defaults + mode http + + frontend fe1 + bind "fd@${fe1}" proto h2 + use_backend be1 + + backend be1 + server srv1 ${s1_addr}:${s1_port} +} -start + +client c1 -connect ${h1_fe1_sock} { + txpri + stream 0 { + txsettings + rxsettings + txsettings -ack + rxsettings + expect settings.ack == true + } -run + + stream 1 { + txreq \ + -req "GET" \ + -scheme "http" \ + -url "/" \ + -hdr "cookie" "c1=foo" \ + -hdr "cookie" "c2=bar" \ + -hdr "cookie" "c3=baz" + rxhdrs + } -run +} -run |