[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