[master] 70dacf2 Add the necessary code (& a testcase) to pad out an included gzip file, no matter which of the 8 bits of a byte the last bit lands in.
Poul-Henning Kamp
phk at project.varnish-software.com
Sat Jan 22 23:58:26 CET 2011
commit 70dacf26f31659353adbf9d287b52a6fc6c818cb
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Sat Jan 22 22:57:19 2011 +0000
Add the necessary code (& a testcase) to pad out an included
gzip file, no matter which of the 8 bits of a byte the last bit
lands in.
diff --git a/bin/varnishtest/tests/e00024.vtc b/bin/varnishtest/tests/e00024.vtc
new file mode 100644
index 0000000..ad3ecd4
--- /dev/null
+++ b/bin/varnishtest/tests/e00024.vtc
@@ -0,0 +1,85 @@
+# $Id$
+
+test "Test all 8 gzip stopbit residuals"
+
+server s1 {
+ rxreq
+ expect req.http.accept-encoding == gzip
+ txresp -gzipbody {
+ <html> 1
+ Before includes 2
+ {<esi:include src="/bit0"/>} bit0 3
+ {<esi:include src="/bit1"/>} bit1 4
+ {<esi:include src="/bit2"/>} bit2 5
+ {<esi:include src="/bit3"/>} bit3 6
+ {<esi:include src="/bit4"/>} bit4 7
+ {<esi:include src="/bit5"/>} bit5 8
+ {<esi:include src="/bit6"/>} bit6 9
+ {<esi:include src="/bit7"/>} bit7 10
+ After includes 11
+ }
+
+ rxreq
+ expect req.url == "/bit0"
+ expect req.http.accept-encoding == gzip
+ txresp -gzipresidual 0 -gziplevel 9 -gzipbody {e04c8d0fd604c}
+
+ rxreq
+ expect req.url == "/bit1"
+ expect req.http.accept-encoding == gzip
+ txresp -gzipresidual 1 -gziplevel 9 -gzipbody {1ea86e6cf31bf4ec3d7a86}
+
+ rxreq
+ expect req.url == "/bit2"
+ expect req.http.accept-encoding == gzip
+ txresp -gzipresidual 2 -gziplevel 9 -gzipbody {10}
+
+ rxreq
+ expect req.url == "/bit3"
+ expect req.http.accept-encoding == gzip
+ txresp -gzipresidual 3 -gziplevel 9 -gzipbody {a5e2e2e1c2e2}
+
+ rxreq
+ expect req.url == "/bit4"
+ expect req.http.accept-encoding == gzip
+ txresp -gzipresidual 4 -gziplevel 9 -gzipbody {71c5d18ec5d5d1}
+
+ rxreq
+ expect req.url == "/bit5"
+ expect req.http.accept-encoding == gzip
+ txresp -gzipresidual 5 -gziplevel 9 -gzipbody {39886d28a6d2988}
+
+ rxreq
+ expect req.url == "/bit6"
+ expect req.http.accept-encoding == gzip
+ txresp -gzipresidual 6 -gziplevel 9 -gzipbody {80000}
+
+ rxreq
+ expect req.url == "/bit7"
+ expect req.http.accept-encoding == gzip
+ txresp -gzipresidual 7 -gziplevel 9 -gzipbody {386811868}
+
+} -start
+
+varnish v1 -vcl+backend {
+ sub vcl_fetch {
+ if (req.url == "/") {
+ set beresp.do_esi = true;
+ }
+ }
+} -start
+
+varnish v1 -cliok "param.set http_gzip_support true"
+varnish v1 -cliok "param.set esi_syntax 0x3e"
+varnish v1 -cliok "param.set diag_bitmap 0x10000"
+
+client c1 {
+ txreq -hdr "Accept-Encoding: gzip"
+ rxresp
+ expect resp.http.content-encoding == gzip
+ gunzip
+ expect resp.status == 200
+ expect resp.bodylen == 252
+} -run
+
+varnish v1 -expect esi_errors == 0
More information about the varnish-commit
mailing list