[master] c4629a0 Make it possible to test for the non-definition of a http header.
Poul-Henning Kamp
phk at varnish-cache.org
Mon Nov 28 10:11:52 CET 2011
commit c4629a0fb7731416f5f130d8ccefa55dc58e5191
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Mon Nov 28 09:11:28 2011 +0000
Make it possible to test for the non-definition of a http header.
Fixes #1062
diff --git a/bin/varnishtest/tests/a00012.vtc b/bin/varnishtest/tests/a00012.vtc
new file mode 100644
index 0000000..07e51c1
--- /dev/null
+++ b/bin/varnishtest/tests/a00012.vtc
@@ -0,0 +1,13 @@
+varnishtest "Ensure that we can test non-existence of headers (#1062)"
+
+server s1 {
+ rxreq
+ txresp
+} -start
+
+client c1 -connect ${s1_sock} {
+ txreq
+ rxresp
+ expect resp.http.X-Test == <undef>
+} -run
+
diff --git a/bin/varnishtest/tests/c00016.vtc b/bin/varnishtest/tests/c00016.vtc
index d028a64..99e9c53 100644
--- a/bin/varnishtest/tests/c00016.vtc
+++ b/bin/varnishtest/tests/c00016.vtc
@@ -8,7 +8,7 @@ server s1 {
rxreq
expect req.url == "/bar"
- expect req.http.Foo == "req.http.Foo"
+ expect req.http.Foo == <undef>
txresp -hdr "Bar: fnry,glyf, FOO ,brok" -hdr "Connection: bar" -body "foobar"
} -start
@@ -21,5 +21,5 @@ client c1 {
txreq -url "/bar" -hdr "Foo: bar2" -hdr "Connection: foo, close"
rxresp
- expect req.http.Bar == "req.http.Bar"
+ expect req.http.Bar == <undef>
} -run
diff --git a/bin/varnishtest/tests/e00024.vtc b/bin/varnishtest/tests/e00024.vtc
index 2aa8e3a..f728b3c 100644
--- a/bin/varnishtest/tests/e00024.vtc
+++ b/bin/varnishtest/tests/e00024.vtc
@@ -81,7 +81,7 @@ client c1 {
txreq
rxresp
- expect resp.http.content-encoding == resp.http.content-encoding
+ expect resp.http.content-encoding == <undef>
expect resp.status == 200
expect resp.bodylen == 252
} -run
diff --git a/bin/varnishtest/tests/e00025.vtc b/bin/varnishtest/tests/e00025.vtc
index 5549f5c..5e8a12b 100644
--- a/bin/varnishtest/tests/e00025.vtc
+++ b/bin/varnishtest/tests/e00025.vtc
@@ -18,7 +18,7 @@ client c1 {
txreq
rxresp
- expect resp.http.content-encoding == resp.http.content-encoding
+ expect resp.http.content-encoding == <undef>
expect resp.status == 200
expect resp.bodylen == 3
} -run
diff --git a/bin/varnishtest/tests/g00001.vtc b/bin/varnishtest/tests/g00001.vtc
index 34ad00f..e10b743 100644
--- a/bin/varnishtest/tests/g00001.vtc
+++ b/bin/varnishtest/tests/g00001.vtc
@@ -13,7 +13,7 @@ client c1 {
txreq
rxresp
expect resp.bodylen == "3"
- expect resp.http.content-encoding == "resp.http.content-encoding"
+ expect resp.http.content-encoding == <undef>
txreq -hdr "Accept-encoding: gzip;q=0.1"
rxresp
@@ -26,13 +26,13 @@ client c1 {
txreq -proto HTTP/1.0
rxresp
expect resp.bodylen == "3"
- expect resp.http.content-encoding == "resp.http.content-encoding"
+ expect resp.http.content-encoding == <undef>
} -run
client c1 {
txreq -req HEAD
rxresp -no_obj
- expect resp.http.content-encoding == "resp.http.content-encoding"
+ expect resp.http.content-encoding == <undef>
txreq -req HEAD -hdr "Accept-encoding: gzip;q=0.1"
rxresp -no_obj
diff --git a/bin/varnishtest/tests/g00002.vtc b/bin/varnishtest/tests/g00002.vtc
index 1bf3384..eb10ba0 100644
--- a/bin/varnishtest/tests/g00002.vtc
+++ b/bin/varnishtest/tests/g00002.vtc
@@ -39,12 +39,12 @@ client c1 {
# See varnish can gunzip it.
txreq -url /foo -hdr "Accept-Encoding: null"
rxresp
- expect resp.http.content-encoding == "resp.http.content-encoding"
+ expect resp.http.content-encoding == <undef>
expect resp.bodylen == 4100
# See varnish can gunzip it, inside ESI
txreq -url /bar -hdr "Accept-Encoding: null"
rxresp
- expect resp.http.content-encoding == "resp.http.content-encoding"
+ expect resp.http.content-encoding == <undef>
expect resp.bodylen == 4109
} -run
diff --git a/bin/varnishtest/tests/g00003.vtc b/bin/varnishtest/tests/g00003.vtc
index dcd8936..05edb5d 100644
--- a/bin/varnishtest/tests/g00003.vtc
+++ b/bin/varnishtest/tests/g00003.vtc
@@ -30,12 +30,12 @@ varnish v1 -cliok "param.set http_gzip_support true" -vcl+backend {
client c1 {
txreq -url /foo -hdr "Accept-Encoding: gzip"
rxresp
- expect resp.http.content-encoding == "resp.http.content-encoding"
+ expect resp.http.content-encoding == <undef>
expect resp.bodylen == 41
txreq -url /bar -hdr "Accept-Encoding: gzip"
rxresp
- expect resp.http.content-encoding == "resp.http.content-encoding"
+ expect resp.http.content-encoding == <undef>
expect resp.bodylen == 42
txreq -url /foobar -hdr "Accept-Encoding: gzip"
@@ -46,6 +46,6 @@ client c1 {
txreq -url /foobar
rxresp
- expect resp.http.content-encoding == "resp.http.content-encoding"
+ expect resp.http.content-encoding == <undef>
expect resp.bodylen == 43
} -run
diff --git a/bin/varnishtest/tests/r00292.vtc b/bin/varnishtest/tests/r00292.vtc
index aaa914c..7739e85 100644
--- a/bin/varnishtest/tests/r00292.vtc
+++ b/bin/varnishtest/tests/r00292.vtc
@@ -6,11 +6,11 @@ varnishtest "Header deletion test"
server s1 {
rxreq
expect req.url == "/foo"
- expect req.http.hdr1 == "req.http.hdr1"
+ expect req.http.hdr1 == <undef>
expect req.http.hdr2 == "2"
- expect req.http.hdr3 == "req.http.hdr3"
+ expect req.http.hdr3 == <undef>
expect req.http.hdr4 == "4"
- expect req.http.hdr5 == "req.http.hdr5"
+ expect req.http.hdr5 == <undef>
expect req.http.hdr6 == "6"
txresp -body "foobar"
} -start
diff --git a/bin/varnishtest/tests/r00466.vtc b/bin/varnishtest/tests/r00466.vtc
index acff68a..8d753ba 100644
--- a/bin/varnishtest/tests/r00466.vtc
+++ b/bin/varnishtest/tests/r00466.vtc
@@ -3,7 +3,7 @@ varnishtest "Check Range forwarding to backend"
server s1 {
rxreq
expect req.url == "/foo"
- expect req.http.range == "req.http.range"
+ expect req.http.range == <undef>
txresp \
-hdr "Foobar: _barf_" \
-body "012345\n"
diff --git a/bin/varnishtest/tests/r00494.vtc b/bin/varnishtest/tests/r00494.vtc
index d1dedd1..1a7fec3 100644
--- a/bin/varnishtest/tests/r00494.vtc
+++ b/bin/varnishtest/tests/r00494.vtc
@@ -19,6 +19,6 @@ client c1 {
txreq
rxresp
expect resp.http.bar == "bar, barf: fail"
- expect resp.http.barf == resp.http.barf
- expect resp.http.foo == resp.http.foo
+ expect resp.http.barf == <undef>
+ expect resp.http.foo == <undef>
} -run
diff --git a/bin/varnishtest/tests/r00693.vtc b/bin/varnishtest/tests/r00693.vtc
index 6cf7b30..37b0a98 100644
--- a/bin/varnishtest/tests/r00693.vtc
+++ b/bin/varnishtest/tests/r00693.vtc
@@ -4,11 +4,11 @@ feature 64bit
server s1 {
rxreq
- expect req.http.baz == "req.http.baz"
+ expect req.http.baz == <undef>
txresp -status 201
rxreq
- expect req.http.baz == "req.http.baz"
+ expect req.http.baz == <undef>
txresp -status 202
rxreq
@@ -52,7 +52,7 @@ varnish v1 -arg "-p sess_workspace=1024" -vcl+backend {
"0123456789abcdef" + "0123456789abcdef" +
"0123456789abcdef" + "0123456789abcdef" +
"0123456789abcdef" +
- "01234567";
+ "0123456";
set req.http.baz = "BAZ";
return (pass);
}
diff --git a/bin/varnishtest/tests/r00861.vtc b/bin/varnishtest/tests/r00861.vtc
index 165795b..8a3e8a0 100644
--- a/bin/varnishtest/tests/r00861.vtc
+++ b/bin/varnishtest/tests/r00861.vtc
@@ -34,12 +34,12 @@ varnish v1 \
client c1 {
txreq -url "/1"
rxresp
- expect resp.http.Content-Encoding == resp.http.Content-Encoding
+ expect resp.http.Content-Encoding == <undef>
expect resp.bodylen == 22
txreq -url "/barf" -hdr "Accept-Encoding: gzip"
rxresp
- expect resp.http.Content-Encoding == resp.http.Content-Encoding
+ expect resp.http.Content-Encoding == <undef>
expect resp.bodylen == 909
txreq -url "/2" -hdr "Accept-Encoding: gzip"
diff --git a/bin/varnishtest/tests/r00980.vtc b/bin/varnishtest/tests/r00980.vtc
index 9591786..b7d307e 100644
--- a/bin/varnishtest/tests/r00980.vtc
+++ b/bin/varnishtest/tests/r00980.vtc
@@ -24,6 +24,6 @@ client c1 {
txreq -url /foobar
rxresp
- expect resp.http.content-encoding == "resp.http.content-encoding"
+ expect resp.http.content-encoding == <undef>
expect resp.bodylen == 43
} -run
diff --git a/bin/varnishtest/vtc_http.c b/bin/varnishtest/vtc_http.c
index 69485cc..d3753a5 100644
--- a/bin/varnishtest/vtc_http.c
+++ b/bin/varnishtest/vtc_http.c
@@ -169,7 +169,7 @@ http_find_header(char * const *hh, const char *hdr)
* Expect
*/
-static char *
+static const char *
cmd_var_resolve(struct http *hp, char *spec)
{
char **hh, *hdr;
@@ -201,16 +201,16 @@ cmd_var_resolve(struct http *hp, char *spec)
hdr = http_find_header(hh, hdr);
if (hdr != NULL)
return (hdr);
- return (spec);
+ return ("<undef>");
}
static void
cmd_http_expect(CMD_ARGS)
{
struct http *hp;
- char *lhs;
+ const char *lhs;
char *cmp;
- char *rhs;
+ const char *rhs;
(void)cmd;
(void)vl;
More information about the varnish-commit
mailing list