r2917 - trunk/varnish-cache/bin/varnishtest/tests

phk at projects.linpro.no phk at projects.linpro.no
Thu Jul 10 13:17:22 CEST 2008


Author: phk
Date: 2008-07-10 13:17:22 +0200 (Thu, 10 Jul 2008)
New Revision: 2917

Added:
   trunk/varnish-cache/bin/varnishtest/tests/v00006.vtc
Log:
Add a testcase to show that we can in fact get rid of both VCL's and
backend hosts.



Added: trunk/varnish-cache/bin/varnishtest/tests/v00006.vtc
===================================================================
--- trunk/varnish-cache/bin/varnishtest/tests/v00006.vtc	                        (rev 0)
+++ trunk/varnish-cache/bin/varnishtest/tests/v00006.vtc	2008-07-10 11:17:22 UTC (rev 2917)
@@ -0,0 +1,74 @@
+# $Id: v00006.vtc 2906 2008-07-08 10:29:07Z phk $
+
+test "VCL: Test backend retirement"
+
+# First do one request to get a work-thread that holds a VCL reference
+
+server s1 -listen 127.0.0.1:9080 {
+	rxreq
+	txresp
+} -start
+
+# Only one pool, to avoid getting more than one work thread
+varnish v1 -arg "-p thread_pools=1" -vcl {
+	backend b1 {
+		.host = "localhost";
+		.port = "9080";
+	}
+} -start
+
+client c1 {
+	txreq
+	rxresp
+} -start
+
+server s1 -wait
+client c1 -wait
+
+varnish v1 -expect n_backend == 1
+varnish v1 -expect n_vcl_avail == 1
+varnish v1 -expect n_vcl_discard == 0
+
+# Set up a new VCL and backend
+
+server s2 -listen 127.0.0.1:9180 {
+	rxreq
+	txresp
+} -start
+
+varnish v1 -vcl {
+	backend b2 {
+		.host = "localhost";
+		.port = "9180";
+	}
+}
+
+varnish v1 -expect n_backend == 2
+varnish v1 -expect n_vcl_avail == 2
+varnish v1 -expect n_vcl_discard == 0
+
+varnish v1 -cli "debug.backend" -cli "vcl.list"
+
+# Discard the first VCL
+
+varnish v1 -cli "vcl.discard vcl1"
+
+# It won't go away as long as the workthread holds a VCL reference
+varnish v1 -expect n_backend == 2
+varnish v1 -expect n_vcl_avail == 1
+varnish v1 -expect n_vcl_discard == 1
+
+# Do another request through the new VCL to the new backend
+client c1 {
+	txreq -url /foo
+	rxresp
+} -start
+
+# The workthread should have released its VCL reference now
+# but we need to tickle the CLI to notice
+
+varnish v1 -cli "debug.backend" -cli "vcl.list"
+
+varnish v1 -expect n_backend == 1
+varnish v1 -expect n_vcl_avail == 1
+varnish v1 -expect n_vcl_discard == 0




More information about the varnish-commit mailing list