[master] 5ba6b682d VMOD blob out-of-workspace tests with all encoding schemes.
Geoff Simmons
geoff at uplex.de
Wed Jul 18 11:21:05 UTC 2018
commit 5ba6b682d42ad02cf1acf7b863975db98821cfb9
Author: Geoff Simmons <geoff at uplex.de>
Date: Wed Jul 18 13:20:31 2018 +0200
VMOD blob out-of-workspace tests with all encoding schemes.
diff --git a/bin/varnishtest/tests/m00049.vtc b/bin/varnishtest/tests/m00049.vtc
index 81e0ff530..6850ffc26 100644
--- a/bin/varnishtest/tests/m00049.vtc
+++ b/bin/varnishtest/tests/m00049.vtc
@@ -44,7 +44,7 @@ client c1 {
expect resp.reason ~ {(?i)^VCL Failed$|^Internal Server Error$}
} -run
-client c1 {
+client c2 {
txreq -url "/2"
rxresp
expect resp.status >= 500
@@ -52,7 +52,7 @@ client c1 {
expect resp.reason ~ {(?i)^VCL Failed$|^Internal Server Error$}
} -run
-client c1 {
+client c3 {
txreq -url "/3"
rxresp
expect resp.status >= 500
@@ -60,10 +60,104 @@ client c1 {
expect resp.reason ~ {(?i)^VCL Failed$|^Internal Server Error$}
} -run
-client c1 {
+client c4 {
txreq -url "/4"
rxresp
expect resp.status >= 500
expect resp.status <= 503
expect resp.reason ~ {(?i)^VCL Failed$|^Internal Server Error$}
} -run
+
+# Similar tests with BASE64 encoding
+varnish v1 -vcl {
+ import blob;
+ import vtc;
+ backend b { .host = "${bad_ip}"; }
+
+ sub vcl_recv {
+ if (req.url == "/1") {
+ vtc.workspace_alloc(client, -33);
+ }
+ elsif (req.url == "/2") {
+ vtc.workspace_alloc(client, -50);
+ }
+ set req.http.Decode
+ = blob.encode(blob=blob.decode(BASE64,
+ encoded="MTIzNDU2Nzg5MA=="));
+ }
+
+ sub vcl_miss {
+ if (req.url == "/3") {
+ vtc.workspace_alloc(client, -65);
+ set req.http.Encode
+ = blob.encode(BASE64, blob=req.hash);
+ }
+ return( synth(200) );
+ }
+}
+
+client c1 -run
+client c2 -run
+client c3 -run
+
+# URL encoding
+varnish v1 -vcl {
+ import blob;
+ import vtc;
+ backend b { .host = "${bad_ip}"; }
+
+ sub vcl_recv {
+ if (req.url == "/1") {
+ vtc.workspace_alloc(client, -33);
+ }
+ elsif (req.url == "/2") {
+ vtc.workspace_alloc(client, -50);
+ }
+ set req.http.Decode
+ = blob.encode(blob=blob.decode(URL,
+ encoded="1234567890"));
+ }
+
+ sub vcl_miss {
+ if (req.url == "/3") {
+ vtc.workspace_alloc(client, -65);
+ set req.http.Encode = blob.encode(URL, blob=req.hash);
+ }
+ return( synth(200) );
+ }
+}
+
+client c1 -run
+client c2 -run
+client c3 -run
+
+# HEX encoding
+varnish v1 -vcl {
+ import blob;
+ import vtc;
+ backend b { .host = "${bad_ip}"; }
+
+ sub vcl_recv {
+ if (req.url == "/1") {
+ vtc.workspace_alloc(client, -33);
+ }
+ elsif (req.url == "/2") {
+ vtc.workspace_alloc(client, -50);
+ }
+ set req.http.Decode
+ = blob.encode(blob=blob.decode(HEX,
+ encoded="31323334353637383930"));
+ }
+
+ sub vcl_miss {
+ if (req.url == "/3") {
+ vtc.workspace_alloc(client, -65);
+ set req.http.Encode = blob.encode(HEX, blob=req.hash);
+ }
+ return( synth(200) );
+ }
+}
+
+client c1 -run
+client c2 -run
+client c3 -run
More information about the varnish-commit
mailing list