diff options
| author | David Kalnischkies <david@kalnischkies.de> | 2022-04-29 16:58:23 +0200 |
|---|---|---|
| committer | David Kalnischkies <david@kalnischkies.de> | 2024-11-22 12:40:10 +0000 |
| commit | 15124923b4cdb19af6bf642f396dab7c3e6bd074 (patch) | |
| tree | 83e8132025e895f9fb14af0baaf6c1d78eda21b3 /test/integration | |
| parent | 041317084a8f74e4a571f308e4a099f9a8090da0 (diff) | |
Allow HashSum mismatches to fallback to other mirrors
Perhaps a common error in the past nowadays thanks to by-hash we rarely
get mismatches due to our calling behaviour and more because the mirror
is genuinely bad especially if this mirror didn't work with by-hash.
Using our "normal" error handling allows falling back to other mirrors
which hopefully do support by-hash and/or are not broken on a filesystem
level making us more resistent to the occasional bad apple in a wild
mirror forest.
Diffstat (limited to 'test/integration')
| -rwxr-xr-x | test/integration/test-apt-update-incomplete-file-mirror | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/integration/test-apt-update-incomplete-file-mirror b/test/integration/test-apt-update-incomplete-file-mirror index 2d2125582..959ddc1a6 100755 --- a/test/integration/test-apt-update-incomplete-file-mirror +++ b/test/integration/test-apt-update-incomplete-file-mirror @@ -25,9 +25,39 @@ testsuccess apt update rm -rf rootdir/var/lib/apt/lists + +msgmsg 'File mirror was hacked' +mkdir aptarchive2 +cp -a aptarchive/dists aptarchive2/ +rm -rf rootdir/var/lib/apt/lists find aptarchive/dists -name 'Packages' | while read FILE; do echo 'hacked' > $FILE done testfailure apt update -o Debug::pkgAcquire::Worker=1 testsuccessequal '4' grep -c -- '- Filesize:' rootdir/tmp/testfailure.output testsuccessequal '2' grep -c '%0aAlt-Checksum-FileSize-Hash:%20' rootdir/tmp/testfailure.output + + +msgmsg 'Fallback over hashsum errors' +rm -f rootdir/etc/apt/sources.list rootdir/etc/apt/sources.list.d/* +echo "deb mirror+file:${TMPWORKINGDIRECTORY}/mirror.list unstable main" > rootdir/etc/apt/sources.list +rm -rf rootdir/var/lib/apt/lists +cat > mirror.list <<EOF +copy:${TMPWORKINGDIRECTORY}/aptarchive priority:1 +file:${TMPWORKINGDIRECTORY}/aptarchive2 priority:2 +EOF +testsuccess apt update + +rm -rf rootdir/var/lib/apt/lists +cat > mirror.list <<EOF +file:${TMPWORKINGDIRECTORY}/aptarchive priority:1 +copy:${TMPWORKINGDIRECTORY}/aptarchive2 priority:2 +EOF +testsuccess apt update + +rm -rf rootdir/var/lib/apt/lists +cat > mirror.list <<EOF +file:${TMPWORKINGDIRECTORY}/aptarchive priority:1 +file:${TMPWORKINGDIRECTORY}/aptarchive2 priority:2 +EOF +testsuccess apt update |
