4 # ensure that an update will only succeed entirely or not at all
6 TESTDIR
=$(readlink -f $(dirname $0))
10 configarchitecture
'i386'
11 configcompression
'.' 'gz'
13 insertpackage
'unstable' 'foo' 'all' '1.0'
14 insertsource
'unstable' 'foo' 'all' '1.0'
16 setupaptarchive
--no-update
20 mv "${1}.gz" "${1}.gz.bak"
28 mv "${1}.gz.bak" "${1}.gz"
32 rm -rf aptarchive
/dists.good
33 cp -a aptarchive
/dists aptarchive
/dists.good
34 insertpackage
'unstable' 'bar' 'all' '1.0'
35 insertsource
'unstable' 'bar' 'all' '1.0'
36 buildaptarchivefromfiles
'+1 hour'
38 # produce an unsigned repository
39 find aptarchive \
( -name 'Release.gpg' -o -name 'InRelease' \
) -delete
40 testfailure aptget update
--no-allow-insecure-repositories
41 testfileequal
"$1" "$(listcurrentlistsdirectory)"
47 testfailure aptget update
48 # each file generates two messages with this string
49 testequal
'2' grep --count 'Hash Sum mismatch' rootdir
/tmp
/testfailure.output
50 testfileequal
"$1" "$(listcurrentlistsdirectory)"
53 breakfile aptarchive
/dists
/unstable
/main
/binary
-i386/Packages
55 restorefile aptarchive
/dists
/unstable
/main
/binary
-i386/Packages
57 breakfile aptarchive
/dists
/unstable
/main
/source
/Sources
59 restorefile aptarchive
/dists
/unstable
/main
/source
/Sources
61 rm -rf aptarchive
/dists
62 cp -a aptarchive
/dists.good aptarchive
/dists
66 msgmsg
'Test with no initial data over' "$1"
67 rm -rf rootdir
/var
/lib
/apt
/lists
68 mkdir -p rootdir
/var
/lib
/apt
/lists
/partial
69 listcurrentlistsdirectory
> listsdir.lst
70 testrun
'listsdir.lst'
72 msgmsg
'Test with initial data over' "$1"
73 rm -rf rootdir
/var
/lib
/apt
/lists
74 testsuccess aptget update
-o Debug
::pkgAcquire
::Worker
=1
75 listcurrentlistsdirectory
> listsdir.lst
76 testrun
'listsdir.lst'
82 webserverconfig
'aptwebserver::support::modified-since' 'false' "$1"
83 webserverconfig
'aptwebserver::support::last-modified' 'false' "$1" # curl is clever and sees hits here also
84 webserverconfig
'aptwebserver::support::range' 'false' "$1"
88 changetohttpswebserver