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

Reply via email to