54 lines
1.6 KiB
Bash
Executable file
54 lines
1.6 KiB
Bash
Executable file
#!/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
|
|
|
|
find aptarchive \( -name 'Packages' -o -name 'Sources' -o -name 'Translation-en' \) -delete
|
|
for release in $(find aptarchive -name 'Release'); do
|
|
cp "$release" "${release}.backup"
|
|
done
|
|
|
|
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.client*.log); do
|
|
for ext in '' '.gz'; do
|
|
COMPRESSFILE="$get"
|
|
get="${get}${ext}"
|
|
FILE="$(basename "$get" '.gz')"
|
|
msgmsg 'Test filesize mismatch with file' "$FILE"
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
for release in $(find aptarchive -name 'Release'); do
|
|
SIZE="$(awk "/$FILE\$/ { print \$2; exit }" "${release}.backup")"
|
|
sed "s# $SIZE # $(($SIZE + 111)) #" "${release}.backup" > "$release"
|
|
done
|
|
signreleasefiles
|
|
|
|
testfailure aptget update -o Debug::pkgAcquire::Worker=1
|
|
cp rootdir/tmp/testfailure.output rootdir/tmp/update.output
|
|
if [ -z "$ext" ]; then
|
|
testsuccess grep -E "$(basename "$COMPRESSFILE" '.gz').*Hash Sum mismatch" rootdir/tmp/update.output
|
|
else
|
|
testsuccess grep -E "$(basename "$COMPRESSFILE" '.gz').*File has unexpected size" rootdir/tmp/update.output
|
|
fi
|
|
testfailure aptcache show foo
|
|
testfailure aptget install foo -s
|
|
|
|
testfailure aptcache show bar
|
|
testfailure aptget install bar -s
|
|
done
|
|
done
|