]> err.no Git - varnish/commitdiff
Add a test of the random director that uses actual randomness.
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 10 Nov 2008 09:40:39 +0000 (09:40 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 10 Nov 2008 09:40:39 +0000 (09:40 +0000)
This will be skipped on platforms where srandom(1) does not result
in the same deterministic sequence of random numbers as on FreeBSD
and Linux.

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3368 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishtest/tests/v00022.vtc [new file with mode: 0644]

diff --git a/varnish-cache/bin/varnishtest/tests/v00022.vtc b/varnish-cache/bin/varnishtest/tests/v00022.vtc
new file mode 100644 (file)
index 0000000..8a39b8b
--- /dev/null
@@ -0,0 +1,86 @@
+# $Id$
+
+test "Deeper test of random director"
+
+random
+
+server s1 {
+       rxreq
+       txresp -body "1"
+} -start
+server s2 -listen 127.0.0.1:9180 {
+       rxreq
+       txresp -body "22"
+       rxreq
+       txresp -body "22"
+       rxreq
+       txresp -body "22"
+} -start
+server s3 -listen 127.0.0.1:9181 {
+       rxreq
+       txresp -body "333"
+} -start
+server s4 -listen 127.0.0.1:9182 {
+       rxreq
+       txresp -body "4444"
+       rxreq
+       txresp -body "4444"
+       rxreq
+       txresp -body "4444"
+       rxreq
+       txresp -body "4444"
+       rxreq
+       txresp -body "4444"
+} -start
+
+varnish v1 -vcl+backend {
+       director foo random {
+               { .backend = s1; .weight = 1; }
+               { .backend = s2; .weight = 1; }
+               { .backend = s3; .weight = 1; }
+               { .backend = s4; .weight = 1; }
+       }
+
+       sub vcl_recv {
+               set req.backend = foo;
+               pass;
+       }
+} -start
+
+# NB: Do not change the number 1
+# NB: Only srandom(1) is standardized as deterministic.
+
+varnish v1 -cliok "debug.srandom 1"
+
+client c1 {
+       txreq 
+       rxresp
+       expect resp.bodylen == 4
+       txreq 
+       rxresp
+       expect resp.bodylen == 2
+       txreq 
+       rxresp
+       expect resp.bodylen == 4
+       txreq 
+       rxresp
+       expect resp.bodylen == 4
+       txreq 
+       rxresp
+       expect resp.bodylen == 4
+       txreq 
+       rxresp
+       expect resp.bodylen == 1
+       txreq 
+       rxresp
+       expect resp.bodylen == 2
+       txreq 
+       rxresp
+       expect resp.bodylen == 4
+       txreq 
+       rxresp
+       expect resp.bodylen == 2
+       txreq 
+       rxresp
+       expect resp.bodylen == 3
+} -run