[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