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
"W: 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}"