Ema has submitted this change and it was merged. Change subject: Misc cluster VTC tests ......................................................................
Misc cluster VTC tests Bug: T128188 Change-Id: I49e2606e48f4eef3dc42e134c323112ec4b0adec --- A modules/varnish/files/tests/misc/01-basic-caching.vtc A modules/varnish/files/tests/misc/02-git.w.o-x-forwarded.vtc A modules/varnish/files/tests/misc/03-grafana.w.o-no-x-webauth-user.vtc A modules/varnish/files/tests/misc/04-etherpad.w.o-tls-redirect.vtc A modules/varnish/files/tests/misc/05-gerrit.w.o-pass.vtc A modules/varnish/files/tests/misc/06-performance.w.o-hit.vtc A modules/varnish/files/tests/misc/07-pass-on-post.vtc A modules/varnish/files/tests/misc/08-yarn.w.o-404.vtc 8 files changed, 294 insertions(+), 0 deletions(-) Approvals: Ema: Verified; Looks good to me, approved diff --git a/modules/varnish/files/tests/misc/01-basic-caching.vtc b/modules/varnish/files/tests/misc/01-basic-caching.vtc new file mode 100644 index 0000000..eae1ec4 --- /dev/null +++ b/modules/varnish/files/tests/misc/01-basic-caching.vtc @@ -0,0 +1,62 @@ +varnishtest "Basic caching behavior" + +server s1 { + rxreq + txresp +} -start + +varnish v1 -arg "-p vcc_err_unref=false" -vcl+backend { + backend vtc_backend { + .host = "${s1_addr}"; .port = "${s1_port}"; + } + + include "/usr/share/varnish/tests/wikimedia_misc-backend.vcl"; +} -start + +client c1 { + txreq + rxresp + expect resp.status == 404 +} + +client c2 { + txreq -hdr "Host: example.org" + rxresp + expect resp.status == 404 +} + +client c3 { + txreq -hdr "Host: git.wikimedia.org" + rxresp + expect resp.status == 200 +} + +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +# c1 does not send the Host header. We expect to get a 404 "Domain not served +# here" in that case. +client c1 -run +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +# c2 sends a request for a domain not served here (example.org). Again we +# expect to get a 404. +client c2 -run +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +# Cache miss with Host: git.wikimedia.org +client c3 -run +varnish v1 -expect cache_miss == 1 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 1 + +# Cache hit with Host: git.wikimedia.org +client c3 -run +varnish v1 -expect cache_miss == 1 +varnish v1 -expect cache_hit == 1 +varnish v1 -expect n_object == 1 diff --git a/modules/varnish/files/tests/misc/02-git.w.o-x-forwarded.vtc b/modules/varnish/files/tests/misc/02-git.w.o-x-forwarded.vtc new file mode 100644 index 0000000..8716fef --- /dev/null +++ b/modules/varnish/files/tests/misc/02-git.w.o-x-forwarded.vtc @@ -0,0 +1,22 @@ +varnishtest "git.wikimedia.org expects X-Forwarded-{Proto,Port}" + +server s1 { + rxreq + expect req.http.X-Forwarded-Proto == "https" + expect req.http.X-Forwarded-Port == "443" + txresp +} -start + +varnish v1 -arg "-p vcc_err_unref=false" -vcl+backend { + backend vtc_backend { + .host = "${s1_addr}"; .port = "${s1_port}"; + } + + include "/usr/share/varnish/tests/wikimedia_misc-frontend.vcl"; +} -start + +client c1 { + txreq -hdr "Host: git.wikimedia.org" + rxresp + expect resp.status == 200 +} -run diff --git a/modules/varnish/files/tests/misc/03-grafana.w.o-no-x-webauth-user.vtc b/modules/varnish/files/tests/misc/03-grafana.w.o-no-x-webauth-user.vtc new file mode 100644 index 0000000..3ec9fff --- /dev/null +++ b/modules/varnish/files/tests/misc/03-grafana.w.o-no-x-webauth-user.vtc @@ -0,0 +1,22 @@ +varnishtest "grafana.wikimedia.org: user-provided X-WEBAUTH-USER should be discarded" + +server s1 { + rxreq + expect req.http.X-Webauth-User == <undef> + expect req.http.X-Webauth-User2 == "world" + txresp +} -start + +varnish v1 -arg "-p vcc_err_unref=false" -vcl+backend { + backend vtc_backend { + .host = "${s1_addr}"; .port = "${s1_port}"; + } + + include "/usr/share/varnish/tests/wikimedia_misc-frontend.vcl"; +} -start + +client c1 { + txreq -hdr "Host: grafana.wikimedia.org" -hdr "X-Webauth-User: hello" -hdr "X-Webauth-User2: world" + rxresp + expect resp.status == 200 +} -run diff --git a/modules/varnish/files/tests/misc/04-etherpad.w.o-tls-redirect.vtc b/modules/varnish/files/tests/misc/04-etherpad.w.o-tls-redirect.vtc new file mode 100644 index 0000000..570704c --- /dev/null +++ b/modules/varnish/files/tests/misc/04-etherpad.w.o-tls-redirect.vtc @@ -0,0 +1,27 @@ +varnishtest "etherpad.wikimedia.org: TLS redirect if X-Forwarded-Proto != https" + +server s1 { + rxreq + txresp +} -start + +varnish v1 -arg "-p vcc_err_unref=false" -vcl+backend { + backend vtc_backend { + .host = "${s1_addr}"; .port = "${s1_port}"; + } + + include "/usr/share/varnish/tests/wikimedia_misc-frontend.vcl"; +} -start + +client c1 { + txreq -hdr "Host: etherpad.wikimedia.org" + rxresp + expect resp.status == 301 + expect resp.http.location == "https://etherpad.wikimedia.org/" +} -run + +client c2 { + txreq -hdr "Host: etherpad.wikimedia.org" -hdr "X-Forwarded-Proto: https" + rxresp + expect resp.status == 200 +} -run diff --git a/modules/varnish/files/tests/misc/05-gerrit.w.o-pass.vtc b/modules/varnish/files/tests/misc/05-gerrit.w.o-pass.vtc new file mode 100644 index 0000000..e42eff2 --- /dev/null +++ b/modules/varnish/files/tests/misc/05-gerrit.w.o-pass.vtc @@ -0,0 +1,36 @@ +varnishtest "gerrit.wikimedia.org: no caching" + +server s1 { + rxreq + txresp + rxreq + txresp +} -start + +varnish v1 -arg "-p vcc_err_unref=false" -vcl+backend { + backend vtc_backend { + .host = "${s1_addr}"; .port = "${s1_port}"; + } + + include "/usr/share/varnish/tests/wikimedia_misc-frontend.vcl"; +} -start + +client c1 { + txreq -hdr "Host: gerrit.wikimedia.org" + rxresp + expect resp.status == 200 +} + +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +client c1 -run +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +client c1 -run +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 diff --git a/modules/varnish/files/tests/misc/06-performance.w.o-hit.vtc b/modules/varnish/files/tests/misc/06-performance.w.o-hit.vtc new file mode 100644 index 0000000..7f87a18 --- /dev/null +++ b/modules/varnish/files/tests/misc/06-performance.w.o-hit.vtc @@ -0,0 +1,41 @@ +varnishtest "performance.wikimedia.org basic caching" + +server s1 { + rxreq + txresp + rxreq + txresp +} -start + +varnish v1 -arg "-p vcc_err_unref=false" -vcl+backend { + backend vtc_backend { + .host = "${s1_addr}"; .port = "${s1_port}"; + } + + include "/usr/share/varnish/tests/wikimedia_misc-frontend.vcl"; +} -start + +client c1 { + txreq -hdr "Host: performance.wikimedia.org" + rxresp + expect resp.status == 200 +} + +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +client c1 -run +varnish v1 -expect cache_miss == 1 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 1 + +client c1 -run +varnish v1 -expect cache_miss == 1 +varnish v1 -expect cache_hit == 1 +varnish v1 -expect n_object == 1 + +client c1 -run +varnish v1 -expect cache_miss == 1 +varnish v1 -expect cache_hit == 2 +varnish v1 -expect n_object == 1 diff --git a/modules/varnish/files/tests/misc/07-pass-on-post.vtc b/modules/varnish/files/tests/misc/07-pass-on-post.vtc new file mode 100644 index 0000000..6aae9dd --- /dev/null +++ b/modules/varnish/files/tests/misc/07-pass-on-post.vtc @@ -0,0 +1,49 @@ +varnishtest "We only deal with GET and HEAD" + +server s1 { + rxreq + txresp + rxreq + txresp + rxreq + txresp +} -start + +varnish v1 -arg "-p vcc_err_unref=false" -vcl+backend { + backend vtc_backend { + .host = "${s1_addr}"; .port = "${s1_port}"; + } + + include "/usr/share/varnish/tests/wikimedia_misc-frontend.vcl"; +} -start + +client c1 { + txreq -req POST -hdr "Host: performance.wikimedia.org" + rxresp + expect resp.status == 200 +} + +client c2 { + txreq -req HEAD -hdr "Host: performance.wikimedia.org" + rxresp + expect resp.status == 200 +} + +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +client c1 -run +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +client c1 -run +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +client c2 -run +varnish v1 -expect cache_miss == 1 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 1 diff --git a/modules/varnish/files/tests/misc/08-yarn.w.o-404.vtc b/modules/varnish/files/tests/misc/08-yarn.w.o-404.vtc new file mode 100644 index 0000000..b519231 --- /dev/null +++ b/modules/varnish/files/tests/misc/08-yarn.w.o-404.vtc @@ -0,0 +1,35 @@ +varnishtest "yarn.wikimedia.org: public access disabled" + +server s1 { + rxreq + txresp +} -start + +varnish v1 -arg "-p vcc_err_unref=false" -vcl+backend { + backend vtc_backend { + .host = "${s1_addr}"; .port = "${s1_port}"; + } + + # We deny access to yarn at the frontend layer + include "/usr/share/varnish/tests/wikimedia_misc-frontend.vcl"; +} -start + +client c1 { + txreq -hdr "Host: yarn.wikimedia.org" -hdr "X-Forwarded-Proto: https" + rxresp + expect resp.status == 404 +} + +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +client c1 -run +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 + +client c1 -run +varnish v1 -expect cache_miss == 0 +varnish v1 -expect cache_hit == 0 +varnish v1 -expect n_object == 0 -- To view, visit https://gerrit.wikimedia.org/r/282137 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I49e2606e48f4eef3dc42e134c323112ec4b0adec Gerrit-PatchSet: 4 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Ema <e...@wikimedia.org> Gerrit-Reviewer: BBlack <bbl...@wikimedia.org> Gerrit-Reviewer: Ema <e...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits