#!/bin/sh set -e TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment configarchitecture 'i386' configcompression 'gz' insertpackage 'testing' 'foo' 'all' '1' insertpackage 'testing' 'foo2' 'all' '1' insertsource 'testing' 'foo' 'all' '1' insertsource 'testing' 'foo2' 'all' '1' setupaptarchive --no-update changetowebserver echo 'Package: bar Maintainer: Doctor Evil Description: come to the dark side ' > aptarchive/DoctorEvil compressfile aptarchive/DoctorEvil find aptarchive \( -name 'Packages' -o -name 'Sources' -o -name 'Translation-en' \) -delete testsuccess aptget update testsuccess aptcache show foo testsuccess aptget install foo -s for get in $(sed -n 's#^GET /\([^ ]\+\.gz\) HTTP.\+$#\1#p' aptarchive/webserver.log); do msgmsg 'Test hashsum mismatch with file' "$get" rm -rf rootdir/var/lib/apt/lists webserverconfig 'aptwebserver::overwrite' '' webserverconfig "aptwebserver::overwrite::$(printf '%s' "${get}" | sed 's#/#%2F#g' )::filename" '%2FDoctorEvil.gz' TEST='testfailure' if expr match "$get" '^.*Translation-.*$' >/dev/null; then TEST='testsuccess' unset get fi $TEST aptget update cp rootdir/tmp/${TEST}.output rootdir/tmp/update.output testsuccess grep -E "$(basename -s '.gz' "$get").*Hash Sum mismatch" rootdir/tmp/update.output $TEST aptcache show foo $TEST aptget install foo -s testfailure aptcache show bar testfailure aptget install bar -s done