blob: d001c2d32bb7af241af716830ff1a4de1a885db1 [file] [log] [blame]
Ilya Shipitsin1e9a6662021-01-05 22:10:46 +05001# Checks that compression doesn't cause corruption..
PiBa-NL4dc3f3b2018-12-23 21:21:51 +01002
3varnishtest "Compression validation"
4#REQUIRE_VERSION=1.6
Christopher Faulet185a6432020-05-26 11:08:59 +02005#REQUIRE_OPTIONS=ZLIB|SLZ,LUA,OPENSSL
Frédéric Lécailledc1a3bd2019-03-29 15:07:24 +01006#REGTEST_TYPE=slow
PiBa-NL4dc3f3b2018-12-23 21:21:51 +01007
8feature ignore_unknown_macro
9
10haproxy h1 -conf {
11global
12# log stdout format short daemon
Frédéric Lécailleb894f922019-03-29 16:13:48 +010013 lua-load ${testdir}/lua_validation.lua
PiBa-NL4dc3f3b2018-12-23 21:21:51 +010014
15defaults
16 mode http
17 log global
PiBa-NL4dc3f3b2018-12-23 21:21:51 +010018 option httplog
19
20frontend main-https
21 bind "fd@${fe1}" ssl crt ${testdir}/common.pem
22 compression algo gzip
23 compression type text/html text/plain application/json application/javascript
24 compression offload
25 use_backend TestBack if TRUE
26
27backend TestBack
28 server LocalSrv ${h1_fe2_addr}:${h1_fe2_port}
29
30listen fileloader
31 mode http
32 bind "fd@${fe2}"
33 http-request use-service lua.fileloader-http01
34} -start
35
36shell {
37 HOST=${h1_fe1_addr}
38 if [ "${h1_fe1_addr}" = "::1" ] ; then
39 HOST="\[::1\]"
40 fi
41
Willy Tarreaub5e62672020-02-18 14:42:33 +010042 md5=$(command -v md5 || command -v md5sum)
PiBa-NL4dc3f3b2018-12-23 21:21:51 +010043
44 if [ -z $md5 ] ; then
45 echo "MD5 checksum utility not found"
46 exit 1
47 fi
48
49 expectchecksum="4d9c62aa5370b8d5f84f17ec2e78f483"
50
51 for opt in "" "--limit-rate 300K" "--limit-rate 500K" ; do
52 checksum=$(curl --max-time 15 --compressed -k "https://$HOST:${h1_fe1_port}" $opt | $md5 | cut -d ' ' -f1)
53 if [ "$checksum" != "$expectchecksum" ] ; then
54 echo "Expecting checksum $expectchecksum"
55 echo "Received checksum: $checksum"
56 exit 1;
57 fi
58 done
59
60} -run