[master] 2f4e3f5 Add a test for bans on obj.status.

Poul-Henning Kamp phk at varnish-cache.org
Sat Oct 26 10:14:27 CEST 2013


commit 2f4e3f5a78d1adda6926796a2360b37e8862353c
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Sat Oct 26 06:40:10 2013 +0000

    Add a test for bans on obj.status.

diff --git a/bin/varnishd/cache/cache_ban.c b/bin/varnishd/cache/cache_ban.c
index 3fd7bb2..bb22fa4 100644
--- a/bin/varnishd/cache/cache_ban.c
+++ b/bin/varnishd/cache/cache_ban.c
@@ -791,7 +791,7 @@ ban_evaluate(const uint8_t *bs, const struct http *objhttp,
 			sprintf(buf, "%d", objhttp->status);
 			break;
 		default:
-			INCOMPL();
+			WRONG("Wrong BAN_ARG code");
 		}
 
 		switch (bt.oper) {
@@ -816,7 +816,7 @@ ban_evaluate(const uint8_t *bs, const struct http *objhttp,
 				return (0);
 			break;
 		default:
-			INCOMPL();
+			WRONG("Wrong BAN_OPER code");
 		}
 	}
 	return (1);
@@ -1199,8 +1199,11 @@ ban_render(struct cli *cli, const uint8_t *bs)
 			VCLI_Out(cli, "obj.http.%.*s",
 			    bt.arg1_spec[0] - 1, bt.arg1_spec + 1);
 			break;
+		case BANS_ARG_OBJSTATUS:
+			VCLI_Out(cli, "obj.status");
+			break;
 		default:
-			INCOMPL();
+			WRONG("Wrong BANS_ARG");
 		}
 		switch (bt.oper) {
 		case BANS_OPER_EQ:	VCLI_Out(cli, " == "); break;
@@ -1208,7 +1211,7 @@ ban_render(struct cli *cli, const uint8_t *bs)
 		case BANS_OPER_MATCH:	VCLI_Out(cli, " ~ "); break;
 		case BANS_OPER_NMATCH:	VCLI_Out(cli, " !~ "); break;
 		default:
-			INCOMPL();
+			WRONG("Wrong BANS_OPER");
 		}
 		VCLI_Out(cli, "%s", bt.arg2);
 		if (bs < be)
diff --git a/bin/varnishtest/tests/c00059.vtc b/bin/varnishtest/tests/c00059.vtc
new file mode 100644
index 0000000..db0e6d2
--- /dev/null
+++ b/bin/varnishtest/tests/c00059.vtc
@@ -0,0 +1,26 @@
+varnishtest "test ban obj.status"
+
+server s1 {
+	rxreq
+	txresp -bodylen 5
+	rxreq
+	txresp -bodylen 3
+} -start
+
+varnish v1 -vcl+backend {} -start
+
+client c1 {
+	txreq
+	rxresp
+	expect resp.bodylen == 5
+} -run
+
+varnish v1 -cliok "ban obj.status == 201"
+varnish v1 -cliok "ban obj.status == 200"
+varnish v1 -cliok "ban.list"
+
+client c1 {
+	txreq
+	rxresp
+	expect resp.bodylen == 3
+} -run



More information about the varnish-commit mailing list