summaryrefslogtreecommitdiffstats
path: root/test/integration/test-apt-update-hashsum-mismatch
blob: 48d041a157fb8f8262fd6da16a8f9507cf54bd1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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