| # Checks that compression doesn't cause corruption.. |
| |
| varnishtest "Compression validation" |
| #REQUIRE_OPTIONS=ZLIB|SLZ,LUA,OPENSSL |
| #REGTEST_TYPE=slow |
| |
| feature ignore_unknown_macro |
| |
| haproxy h1 -conf { |
| global |
| # log stdout format short daemon |
| lua-load ${testdir}/lua_validation.lua |
| |
| defaults |
| mode http |
| log global |
| option httplog |
| |
| frontend main-https |
| bind "fd@${fe1}" ssl crt ${testdir}/common.pem |
| compression algo gzip |
| compression type text/html text/plain application/json application/javascript |
| compression offload |
| use_backend TestBack if TRUE |
| |
| backend TestBack |
| server LocalSrv ${h1_fe2_addr}:${h1_fe2_port} |
| |
| listen fileloader |
| mode http |
| bind "fd@${fe2}" |
| http-request use-service lua.fileloader-http01 |
| } -start |
| |
| shell { |
| HOST=${h1_fe1_addr} |
| if [ "${h1_fe1_addr}" = "::1" ] ; then |
| HOST="\[::1\]" |
| fi |
| |
| md5=$(command -v md5 || command -v md5sum) |
| |
| if [ -z $md5 ] ; then |
| echo "MD5 checksum utility not found" |
| exit 1 |
| fi |
| |
| expectchecksum="4d9c62aa5370b8d5f84f17ec2e78f483" |
| |
| for opt in "" "--limit-rate 300K" "--limit-rate 500K" ; do |
| checksum=$(curl --max-time 15 --compressed -k "https://$HOST:${h1_fe1_port}" $opt | $md5 | cut -d ' ' -f1) |
| if [ "$checksum" != "$expectchecksum" ] ; then |
| echo "Expecting checksum $expectchecksum" |
| echo "Received checksum: $checksum" |
| exit 1; |
| fi |
| done |
| |
| } -run |