4 TESTDIR
="$(readlink -f "$(dirname "$0")")" 
   8 configarchitecture 'native' 
  10 insertpackage 'unstable' 'unrelated' 'all' '1.0' 'stable' 
  11 insertsource 'unstable' 'unrelated' 'all' '1.0' 'stable' 
  13 echo 'ni ni ni' > aptarchive/knights 
  16 changetowebserver -o 'aptwebserver::overwrite::.*InRelease::filename=/knights' -o 'aptwebserver::overwrite::.*::filename=/knights' 
  18 msgtest 'Acquire test file from the webserver to check' 'overwrite' 
  19 if downloadfile http://localhost:${APTHTTPPORT}/holygrail ./knights-talking >/dev/null; then 
  25 testfileequal knights-talking 'ni ni ni' 
  27 ensure_n_canary_strings_in_dir() { 
  29         local CANARY_STRING="$2" 
  32         msgtest "Testing 
in $DIR for $EXPECTED_N canary
" "$CANARY_STRING" 
  33         local N=$(grep "$CANARY_STRING" $DIR/* 2>/dev/null |wc -l ) 
  34         test "$N" = "$EXPECTED_N" && msgpass || msgfail "Expected 
$EXPECTED_N canaries
, got 
$N" 
  38         LISTS='rootdir/var/lib/apt/lists' 
  40         testfailure aptget update 
  41         testsuccess grep "$1" rootdir/tmp/testfailure.output 
  43         ensure_n_canary_strings_in_dir "$LISTS" 'ni ni ni' 0 
  47         # and again with pre-existing files with "valid data
" which should remain 
  48         for f in Release Release.gpg main_binary-amd64_Packages main_source_Sources; do 
  49                 echo 'peng neee-wom' > "$LISTS/localhost
:${APTHTTPPORT}_dists_stable_
${f}" 
  50                 chmod 644 "$LISTS/localhost
:${APTHTTPPORT}_dists_stable_
${f}" 
  53         testfailure aptget update 
  54         testsuccess grep "$1" rootdir/tmp/testfailure.output 
  56         ensure_n_canary_strings_in_dir "$LISTS" 'peng neee-wom' 4 
  57         ensure_n_canary_strings_in_dir "$LISTS" 'ni ni ni' 0 
  59         # and now with a pre-existing InRelease file 
  60         echo 'peng neee-wom' > "$LISTS/localhost
:${APTHTTPPORT}_dists_stable_InRelease
" 
  61         chmod 644 "$LISTS/localhost
:${APTHTTPPORT}_dists_stable_InRelease
" 
  62         rm -f "$LISTS/localhost
:${APTHTTPPORT}_dists_stable_Release
" "$LISTS/localhost
:${APTHTTPPORT}_dists_stable_Release.gpg
" 
  63         msgtest 'excpected failure of' 'apt-get update' 
  64         testfailure aptget update 
  65         testsuccess grep "$1" rootdir/tmp/testfailure.output 
  67         ensure_n_canary_strings_in_dir "$LISTS" 'peng neee-wom' 3 
  68         ensure_n_canary_strings_in_dir "$LISTS" 'ni ni ni' 0 
  70 runtests '^E:.*Clearsigned file .*NOSPLIT.*' 
  71 webserverconfig 'aptwebserver::overwrite::.*InRelease::filename' '/404' 
  72 runtests '^E:.*Signed file .*NODATA.*'