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 <[email protected]>
Gerrit-Reviewer: BBlack <[email protected]>
Gerrit-Reviewer: Ema <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits