---
 bin/varnishtest/tests/c00070.vtc | 54 ++++++++++++++++++++++++++++++++++++++++
 bin/varnishtest/tests/c00071.vtc | 42 +++++++++++++++++++++++++++++++
 2 files changed, 96 insertions(+)
 create mode 100644 bin/varnishtest/tests/c00070.vtc
 create mode 100644 bin/varnishtest/tests/c00071.vtc

diff --git a/bin/varnishtest/tests/c00070.vtc b/bin/varnishtest/tests/c00070.vtc
new file mode 100644
index 0000000..1ab5bf3
--- /dev/null
+++ b/bin/varnishtest/tests/c00070.vtc
@@ -0,0 +1,54 @@
+varnishtest "Test ws overflow functions in vmod-debug"
+
+server s1 {
+       rxreq
+       txresp
+
+       rxreq
+       txresp
+} -start
+
+varnish v1 -vcl+backend {
+       import ${vmod_debug};
+       sub vcl_backend_response {
+               set beresp.http.free_backend = debug.workspace_free(backend);
+       }
+
+       sub vcl_deliver {
+               set resp.http.free_client = debug.workspace_free(client);
+               set resp.http.free_session = debug.workspace_free(session);
+               set resp.http.free_thread = debug.workspace_free(thread);
+
+               set resp.http.overflowed = debug.workspace_overflowed(client);
+               debug.workspace_allocate(client, 2048);
+
+               if (req.url == "/bar") {
+                       debug.workspace_overflow(client);
+               }
+       }
+} -start
+
+logexpect l1 -v v1 -d 1 -g vxid -q "Error ~ 'overflow'" {
+        expect 0 *      Begin
+        expect * =      Error  "workspace_client overflow"
+        expect * =      End
+} -start
+
+client c1 {
+       txreq -url /foo
+       rxresp
+       expect resp.http.overflowed == "false"
+
+       expect resp.http.free_client > 57000
+       expect resp.http.free_backend > 57000
+       expect resp.http.free_session > 250
+       expect resp.http.free_thread > 2000
+} -run
+
+client c2 {
+       txreq -url /bar
+       rxresp
+       expect resp.status == 500
+} -run
+
+logexpect l1 -wait
diff --git a/bin/varnishtest/tests/c00071.vtc b/bin/varnishtest/tests/c00071.vtc
new file mode 100644
index 0000000..20e6ad9
--- /dev/null
+++ b/bin/varnishtest/tests/c00071.vtc
@@ -0,0 +1,42 @@
+varnishtest "Test actual client workspace overflow"
+
+server s1 {
+       rxreq
+       txresp
+
+       rxreq
+       txresp
+
+       rxreq
+       txresp
+} -start
+
+varnish v1 -vcl+backend {
+       import ${vmod_debug};
+       sub vcl_deliver {
+               debug.workspace_allocate(client, debug.workspace_free(client) - 
278);
+               if (req.url ~ "/bar") {
+                       set resp.http.x-foo = 
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+               }
+               else if (req.url ~ "/baz") {
+                       set resp.http.x-foo = regsub(req.url, "baz", 
"baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz");
+               }
+       }
+} -start
+
+client c1 {
+       txreq -url /foo
+       rxresp
+       expect resp.status == 200
+
+       txreq -url /bar
+       rxresp
+       expect resp.status == 500
+} -run
+
+client c2 {
+       txreq -url /baz
+       rxresp
+       expect resp.status == 500
+} -run
+
-- 
2.1.4


-- 
Lasse Karstensen
Varnish Software AS

_______________________________________________
varnish-dev mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev

Reply via email to