[master] 59d4d33f2 shard director: coverage

Nils Goroll nils.goroll at uplex.de
Mon Jan 18 15:18:07 UTC 2021


commit 59d4d33f29bf9b41eec7da29ad24b2875a2eb6fd
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Mon Jan 18 14:44:23 2021 +0100

    shard director: coverage

diff --git a/bin/varnishtest/tests/d00015.vtc b/bin/varnishtest/tests/d00015.vtc
index c283732be..e0b7395f3 100644
--- a/bin/varnishtest/tests/d00015.vtc
+++ b/bin/varnishtest/tests/d00015.vtc
@@ -130,6 +130,9 @@ varnish v1 -vcl+backend {
 			return(fail("reconfigure failed"));
 		}
 
+		vd.set_warmup(1);
+		vd.set_warmup(-0.001);
+
 		std.log("-- END");
 
 		## gcov - semantic testing via the client request & .list
@@ -268,8 +271,10 @@ logexpect l1 -v v1 -g raw -d 1 {
 	expect 0 0    Debug   {^vmod_directors: shard:.*point = d51dafe6, host =  0}
 	expect 0 0    Debug   {^vmod_directors: shard:.*point = eb74a7d5, host =  4}
 	expect 0 0    Debug   {^vmod_directors: shard:.*point = f493ce58, host =  2}
+	expect 0 0    Notice  {^\Qvmod_directors: shard vd: .set_warmup(1.000000) ignored\E$}
+	expect 0 0    Notice  {^\Qvmod_directors: shard vd: .set_warmup(-0.001000) ignored\E$}
 
-expect 0 0    VCL_Log {^-- END$}
+	expect 0 0    VCL_Log {^-- END$}
 } -start
 
 client c1 {
diff --git a/bin/varnishtest/tests/d00020.vtc b/bin/varnishtest/tests/d00020.vtc
index 5e99f3758..877672f06 100644
--- a/bin/varnishtest/tests/d00020.vtc
+++ b/bin/varnishtest/tests/d00020.vtc
@@ -85,6 +85,7 @@ varnish v1 -vcl+backend {
 	    if (bereq.url ~ "^/b/c/hash/") {
 		set beresp.http.override = bereq.url;
 		p_def.set(by=HASH, alt=7);
+		p_hash.clear();
 		p_hash.set(by=HASH, alt=8);
 		p_url.set(by=HASH, alt=9);
 		p_key.set(by=HASH, alt=10);
diff --git a/bin/varnishtest/tests/d00021.vtc b/bin/varnishtest/tests/d00021.vtc
index 730c32705..2ed251a46 100644
--- a/bin/varnishtest/tests/d00021.vtc
+++ b/bin/varnishtest/tests/d00021.vtc
@@ -36,6 +36,7 @@ varnish v1 -vcl+backend {
 
 	    new l = directors.shard();
 	    new lp = directors.shard_param();
+	    l.associate();
 	    l.associate(lp.use());
 	    if (!l.add_backend(s1)) {
 		return(fail("add s1 failed"));
diff --git a/bin/varnishtest/tests/d00030.vtc b/bin/varnishtest/tests/d00030.vtc
index 070dfa74b..c458a6b37 100644
--- a/bin/varnishtest/tests/d00030.vtc
+++ b/bin/varnishtest/tests/d00030.vtc
@@ -4,7 +4,7 @@ varnish v1 -vcl {
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new shard = directors.shard();
@@ -55,7 +55,7 @@ varnish v1 -errvcl {shard .associate param invalid} {
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new shard = directors.shard();
@@ -67,7 +67,7 @@ varnish v1 -errvcl {missing key argument with by=KEY} {
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new p = directors.shard_param();
@@ -79,7 +79,7 @@ varnish v1 -errvcl {invalid key argument -5 with by=KEY} {
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new p = directors.shard_param();
@@ -91,7 +91,7 @@ varnish v1 -errvcl {missing key_blob argument with by=BLOB} {
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new p = directors.shard_param();
@@ -103,7 +103,7 @@ varnish v1 -errvcl {key and key_blob arguments are invalid with by=URL} {
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new p = directors.shard_param();
@@ -115,7 +115,7 @@ varnish v1 -errvcl {key and key_blob arguments are invalid with by=HASH} {
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new p = directors.shard_param();
@@ -127,7 +127,7 @@ varnish v1 -errvcl {invalid alt argument -1} {
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new p = directors.shard_param();
@@ -139,7 +139,7 @@ varnish v1 -errvcl {invalid warmup argument -0.5} {
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new p = directors.shard_param();
@@ -151,7 +151,7 @@ varnish v1 -errvcl {invalid warmup argument 1.1} {
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new p = directors.shard_param();
@@ -163,7 +163,7 @@ varnish v1 -errvcl {vmod_directors: shard shard: .backend(resolve=LAZY) with oth
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new shard = directors.shard();
@@ -176,7 +176,7 @@ varnish v1 -errvcl {vmod_directors: shard shard: .backend(resolve=NOW) can not b
     import directors;
     import blob;
 
-    backend dummy { .host = "${bad_backend}"; }
+    backend dummy None;
 
     sub vcl_init {
 	new shard = directors.shard();
@@ -184,3 +184,25 @@ varnish v1 -errvcl {vmod_directors: shard shard: .backend(resolve=NOW) can not b
 	rr.add_backend(shard.backend(resolve=NOW));
     }
 }
+
+varnish v1 -errvcl {vmod_directors: shard shard: NULL backend cannot be added}{
+    import directors;
+
+    backend dummy None;
+
+    sub vcl_init {
+	new shard = directors.shard();
+	shard.add_backend(dummy);
+    }
+}
+
+varnish v1 -errvcl {vmod_directors: shard shard: .remove_backend(): either backend or ident are required}{
+    import directors;
+
+    backend dummy None;
+
+    sub vcl_init {
+	new shard = directors.shard();
+	shard.remove_backend();
+    }
+}
diff --git a/bin/varnishtest/tests/d00041.vtc b/bin/varnishtest/tests/d00041.vtc
index 587f1b897..3e108b81b 100644
--- a/bin/varnishtest/tests/d00041.vtc
+++ b/bin/varnishtest/tests/d00041.vtc
@@ -29,6 +29,9 @@ varnish v1 -vcl+backend {
 		if (!vd.add_backend(s2, weight=2)) {
 			return(fail("add s2 failed"));
 		}
+		# weight ignored
+		vd.add_backend(s3, weight=0.3);
+		vd.remove_backend(s3);
 		if (!vd.add_backend(s3, weight=3)) {
 			return(fail("add s3 failed"));
 		}
@@ -49,6 +52,7 @@ varnish v1 -vcl+backend {
 logexpect l1 -v v1 -g raw -d 1 {
 	expect 0 0    CLI   "^Rd vcl.load"
 
+	expect 0 =   Notice {^\Qvmod_directors: shard vd: .add_backend(weight=0.300000) ignored\E$}
 	expect 0 =    Debug {^vmod_directors: shard: hashcircle.* 0. = .point = *238d0ef, host =  2.}
 	expect 0 =    Debug {^vmod_directors: shard: hashcircle.* 1. = .point = *321c598, host =  2.}
 	expect 0 =    Debug {^vmod_directors: shard: hashcircle.* 2. = .point = *3b6b56a, host =  0.}
diff --git a/vmod/vmod_directors_shard.c b/vmod/vmod_directors_shard.c
index 77fab676a..242723684 100644
--- a/vmod/vmod_directors_shard.c
+++ b/vmod/vmod_directors_shard.c
@@ -348,7 +348,7 @@ vmod_shard_remove_backend(VRT_CTX, struct vmod_directors_shard *vshard,
 
 	if (be == NULL && ident == NULL) {
 		shard_fail(ctx, vshard->shardd->name, "%s",
-		    ".backend_remove(): either backend or ident are required");
+		    ".remove_backend(): either backend or ident are required");
 		return (0);
 	}
 


More information about the varnish-commit mailing list