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' 'i386' '1.0' 
  14 insertsource 
'unstable' 'foo' 'i386' '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' 'i386' '1.0' 
  35         insertsource 
'unstable' 'bar' 'i386' '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