4 TESTDIR
="$(readlink -f "$(dirname "$0")")"
8 configarchitecture "i386
"
10 insertpackage 'unstable' 'apt' 'i386' '1.0'
12 setupaptarchive --no-update
13 cp -a aptarchive/dists aptarchive/dists.good
15 test_inreleasetoobig() {
16 # make InRelease really big to trigger fallback
17 dd if=/dev/zero of=aptarchive/dists/unstable/InRelease bs=1M count=2 2>/dev/null
18 touch -d '+1hour' aptarchive/dists/unstable/InRelease
19 testsuccess aptget update -o Apt::Get::List-Cleanup=0 -o acquire::MaxReleaseFileSize=$((1*1000*1000)) -o Debug::pkgAcquire::worker=0
20 msgtest 'Check that the max write warning is triggered'
21 cp rootdir/tmp/testsuccess.output update.output
22 testsuccess --nomsg grep -q 'Writing more data than expected' update.output
24 # ensure the failed InRelease file got renamed
25 testsuccess ls rootdir/var/lib/apt/lists/partial/*InRelease.FAILED
28 test_packagestoobig() {
29 insertpackage 'unstable' 'foo' 'i386' '1.0'
30 buildaptarchivefromfiles '+1 hour'
32 # append junk at the end of the Packages.gz/Packages
33 SIZE="$(stat --printf=%s aptarchive/dists/unstable/main/binary-i386/Packages)"
34 find aptarchive/dists -name 'Packages*' | while read pkg; do
35 echo "1234567890" >> "$pkg"
36 touch -d '+1hour' "$pkg"
38 NEW_SIZE="$(stat --printf=%s aptarchive/dists/unstable/main/binary-i386/Packages)"
39 testfailuremsg "E
: Failed to fetch
${1}/dists
/unstable
/main
/binary
-i386/Packages Writing
more data than expected
($NEW_SIZE > $SIZE)
40 E
: Some index files failed to download. They have been ignored
, or old ones used instead.
" aptget update -o Debug::pkgAcquire::Worker=1 -o Debug::Acquire::Transaction=0
44 # less complicated test setup this way
45 webserverconfig 'aptwebserver::support::modified-since' 'false' "$1"
46 webserverconfig 'aptwebserver::support::last-modified' 'false' "$1" # curl is clever and sees hits here also
48 msgmsg 'Test with' "$1" 'and clean start'
49 rm -rf rootdir/var/lib/apt/lists rootdir/var/lib/apt/lists.good
50 # normal update works fine
51 testsuccess aptget update
52 mv rootdir/var/lib/apt/lists rootdir/var/lib/apt/lists.good
54 # starting fresh works
55 test_inreleasetoobig "$1"
56 rm -rf aptarchive/dists rootdir/var/lib/apt/lists
57 cp -a aptarchive/dists.good aptarchive/dists
58 test_packagestoobig "$1"
59 rm -rf aptarchive/dists rootdir/var/lib/apt/lists
60 cp -a aptarchive/dists.good aptarchive/dists
62 msgmsg 'Test with' "$1" 'and existing old data'
63 cp -a rootdir/var/lib/apt/lists.good rootdir/var/lib/apt/lists
64 test_inreleasetoobig "$1"
65 rm -rf aptarchive/dists rootdir/var/lib/apt/lists
66 cp -a rootdir/var/lib/apt/lists.good rootdir/var/lib/apt/lists
67 cp -a aptarchive/dists.good aptarchive/dists
68 test_packagestoobig "$1"
69 rm -rf aptarchive/dists
70 cp -a aptarchive/dists.good aptarchive/dists
74 methodtest "http
://localhost
:${APTHTTPPORT}"
76 changetohttpswebserver
77 methodtest "https
://localhost
:${APTHTTPSPORT}"