# 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