summaryrefslogtreecommitdiffstats
path: root/test/integration/test-apt-update-hashsum-mismatch
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/test-apt-update-hashsum-mismatch')
-rwxr-xr-xtest/integration/test-apt-update-hashsum-mismatch39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/integration/test-apt-update-hashsum-mismatch b/test/integration/test-apt-update-hashsum-mismatch
new file mode 100755
index 0000000..48d041a
--- /dev/null
+++ b/test/integration/test-apt-update-hashsum-mismatch
@@ -0,0 +1,39 @@
+#!/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
+
+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
+ msgmsg 'Test hashsum mismatch with file' "$get"
+ breakfiles "aptarchive/${get}"
+ rm -rf rootdir/var/lib/apt/lists
+
+ testfailure aptget update
+ cp rootdir/tmp/testfailure.output rootdir/tmp/update.output
+ testsuccess grep -E "$(basename "$get" '.gz').*Hash Sum mismatch" rootdir/tmp/update.output
+ testfailure aptcache show foo
+ testfailure aptget install foo -s
+
+ testfailure aptcache show bar
+ testfailure aptget install bar -s
+
+ unbreakfiles "aptarchive/${get}"
+done