[master] dd4966e53 vtc: Test / demo VCL-controlled range processing on the client side

Nils Goroll nils.goroll at uplex.de
Tue Jun 3 08:17:06 UTC 2025


commit dd4966e53ea7149095250a2b7471bb139c976438
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Tue Jun 3 10:14:01 2025 +0200

    vtc: Test / demo VCL-controlled range processing on the client side
    
    Motivated by #4336

diff --git a/bin/varnishtest/tests/c00034.vtc b/bin/varnishtest/tests/c00034.vtc
index 86152e004..394a7a91e 100644
--- a/bin/varnishtest/tests/c00034.vtc
+++ b/bin/varnishtest/tests/c00034.vtc
@@ -5,14 +5,41 @@ server s1 {
 	txresp -bodylen 100
 } -start
 
+########################################################################
+# VCL control over range processing with built-in range support disabled
+
 varnish v1 -vcl+backend {
 	sub vcl_backend_response {
 		set beresp.do_stream = false;
 	}
+	sub vcl_deliver {
+		if (req.http.range) {
+			set resp.filters = "range";
+		}
+		set resp.http.Accept-Ranges = "bytes";
+	}
 } -start
 
 varnish v1 -cliok "param.set http_range_support off"
 
+client c1 {
+	txreq -hdr "Range: bytes=0-9"
+	rxresp
+	expect resp.status == 206
+	expect resp.bodylen == 10
+	expect resp.http.content-range == "bytes 0-9/100"
+	expect resp.http.accept-ranges == "bytes"
+} -run
+
+########################################################################
+# Neither explicit range processing nor built-in
+
+varnish v1 -vcl+backend {
+	sub vcl_backend_response {
+		set beresp.do_stream = false;
+	}
+}
+
 client c1 {
 	txreq -hdr "Range: bytes=0-9"
 	rxresp
@@ -21,10 +48,13 @@ client c1 {
 	expect resp.bodylen == 100
 } -run
 
-varnish v1 -expect s_resp_bodybytes == 100
+varnish v1 -expect s_resp_bodybytes == 110
 
 varnish v1 -vsl_catchup
 
+########################################################################
+# Only built-in processing
+
 varnish v1 -cliok "param.set http_range_support on"
 
 client c2 {
@@ -74,7 +104,7 @@ client c2 {
 	expect resp.bodylen == 0
 } -run
 
-varnish v1 -expect s_resp_bodybytes == 100
+varnish v1 -expect s_resp_bodybytes == 110
 
 varnish v1 -vsl_catchup
 
@@ -125,7 +155,7 @@ client c3 {
 	expect resp.http.content-range == "bytes 0-99/100"
 } -run
 
-varnish v1 -expect s_resp_bodybytes == 501
+varnish v1 -expect s_resp_bodybytes == 511
 
 varnish v1 -vsl_catchup
 


More information about the varnish-commit mailing list