183 lines
8.5 KiB
Bash
Executable file
183 lines
8.5 KiB
Bash
Executable file
#!/bin/sh
|
|
set -e
|
|
|
|
TESTDIR="$(readlink -f "$(dirname "$0")")"
|
|
. "$TESTDIR/framework"
|
|
|
|
setupenvironment
|
|
configarchitecture 'amd64' 'i386'
|
|
confighashes 'SHA256'
|
|
|
|
insertpackage 'unstable' 'apt' 'amd64,i386' '1.0'
|
|
|
|
export APT_DONT_SIGN=''
|
|
setupaptarchive --no-update
|
|
|
|
methodtest() {
|
|
msgmsg 'Test InRelease with' "$1"
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
cp -a aptarchive/dists aptarchive/dists.good
|
|
# get our cache populated
|
|
testsuccess aptget update
|
|
listcurrentlistsdirectory > listsdir.lst
|
|
|
|
# hit again with a good cache
|
|
testsuccessequal "Hit:1 $1 unstable InRelease
|
|
Reading package lists..." aptget update
|
|
testfileequal 'listsdir.lst' "$(listcurrentlistsdirectory)"
|
|
|
|
# drop an architecture, which means the file should be gone now
|
|
configarchitecture 'i386'
|
|
sed '/_binary-amd64_Packages/ d' listsdir.lst > listsdir-without-amd64.lst
|
|
testsuccessequal "Hit:1 $1 unstable InRelease
|
|
Reading package lists..." aptget update
|
|
testfileequal 'listsdir-without-amd64.lst' "$(listcurrentlistsdirectory)"
|
|
|
|
# readd arch so its downloaded again…
|
|
configarchitecture 'amd64' 'i386'
|
|
# … but oh noes, hashsum mismatch!
|
|
SIZE=$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz')
|
|
breakfiles aptarchive/dists/unstable/main/binary-amd64/Packages.gz
|
|
testfailureequal "Hit:1 $1 unstable InRelease
|
|
Get:2 $1 unstable/main amd64 Packages [$SIZE B]
|
|
Err:2 $1 unstable/main amd64 Packages
|
|
Hash Sum mismatch
|
|
Hashes of expected file:
|
|
- Filesize:$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz.bak') [weak]
|
|
- SHA256:$(sha256sum 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz.bak' | cut -d' ' -f 1)
|
|
Hashes of received file:
|
|
- SHA256:$(sha256sum 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz' | cut -d' ' -f 1)
|
|
- Filesize:$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') [weak]
|
|
Last modification reported: $(lastmodification 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz')
|
|
Release file created at: $(releasefiledate 'aptarchive/dists/unstable/InRelease')
|
|
Reading package lists...
|
|
E: Failed to fetch $1/dists/unstable/main/binary-amd64/Packages.gz Hash Sum mismatch
|
|
Hashes of expected file:
|
|
- Filesize:$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz.bak') [weak]
|
|
- SHA256:$(sha256sum 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz.bak' | cut -d' ' -f 1)
|
|
Hashes of received file:
|
|
- SHA256:$(sha256sum 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz' | cut -d' ' -f 1)
|
|
- Filesize:$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') [weak]
|
|
Last modification reported: $(lastmodification 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz')
|
|
Release file created at: $(releasefiledate 'aptarchive/dists/unstable/InRelease')
|
|
E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update
|
|
testfileequal 'listsdir-without-amd64.lst' "$(listcurrentlistsdirectory)"
|
|
rm -rf aptarchive/dists
|
|
cp -a aptarchive/dists.good aptarchive/dists
|
|
|
|
# … now everything is fine again
|
|
testsuccessequal "Hit:1 $1 unstable InRelease
|
|
Get:2 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') B]
|
|
Reading package lists..." aptget update
|
|
testfileequal 'listsdir.lst' "$(listcurrentlistsdirectory)"
|
|
|
|
webserverconfig 'aptwebserver::support::modified-since' 'false'
|
|
webserverconfig 'aptwebserver::support::last-modified' 'false'
|
|
testsuccessequal "Get:1 $1 unstable InRelease [$(stat -c '%s' 'aptarchive/dists/unstable/InRelease') B]
|
|
Reading package lists..." aptget update
|
|
webserverconfig 'aptwebserver::support::modified-since' 'true'
|
|
webserverconfig 'aptwebserver::support::last-modified' 'true'
|
|
|
|
msgmsg 'Test Release.gpg with' "$1"
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
find aptarchive/dists -name 'InRelease' -delete
|
|
# get our cache populated
|
|
testsuccess aptget update
|
|
listcurrentlistsdirectory > listsdir.lst
|
|
|
|
# hit again with a good cache
|
|
testsuccessequal "Ign:1 $1 unstable InRelease
|
|
404 Not Found
|
|
Hit:2 $1 unstable Release
|
|
Reading package lists..." aptget update
|
|
testfileequal 'listsdir.lst' "$(listcurrentlistsdirectory)"
|
|
|
|
# drop an architecture, which means the file should be gone now
|
|
configarchitecture 'i386'
|
|
sed '/_binary-amd64_Packages/ d' listsdir.lst > listsdir-without-amd64.lst
|
|
testsuccessequal "Ign:1 $1 unstable InRelease
|
|
404 Not Found
|
|
Hit:2 $1 unstable Release
|
|
Reading package lists..." aptget update
|
|
testfileequal 'listsdir-without-amd64.lst' "$(listcurrentlistsdirectory)"
|
|
|
|
# readd arch so its downloaded again…
|
|
configarchitecture 'amd64' 'i386'
|
|
# … but oh noes, hashsum mismatch!
|
|
SIZE=$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz')
|
|
breakfiles 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz'
|
|
testfailureequal "Ign:1 $1 unstable InRelease
|
|
404 Not Found
|
|
Hit:2 $1 unstable Release
|
|
Get:4 $1 unstable/main amd64 Packages [$SIZE B]
|
|
Err:4 $1 unstable/main amd64 Packages
|
|
Hash Sum mismatch
|
|
Hashes of expected file:
|
|
- Filesize:$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz.bak') [weak]
|
|
- SHA256:$(sha256sum 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz.bak' | cut -d' ' -f 1)
|
|
Hashes of received file:
|
|
- SHA256:$(sha256sum 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz' | cut -d' ' -f 1)
|
|
- Filesize:$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') [weak]
|
|
Last modification reported: $(lastmodification 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz')
|
|
Release file created at: $(releasefiledate 'aptarchive/dists/unstable/Release')
|
|
Reading package lists...
|
|
E: Failed to fetch $1/dists/unstable/main/binary-amd64/Packages.gz Hash Sum mismatch
|
|
Hashes of expected file:
|
|
- Filesize:$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz.bak') [weak]
|
|
- SHA256:$(sha256sum 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz.bak' | cut -d' ' -f 1)
|
|
Hashes of received file:
|
|
- SHA256:$(sha256sum 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz' | cut -d' ' -f 1)
|
|
- Filesize:$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') [weak]
|
|
Last modification reported: $(lastmodification 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz')
|
|
Release file created at: $(releasefiledate 'aptarchive/dists/unstable/Release')
|
|
E: Some index files failed to download. They have been ignored, or old ones used instead." aptget update
|
|
testfileequal 'listsdir-without-amd64.lst' "$(listcurrentlistsdirectory)"
|
|
rm -rf aptarchive/dists
|
|
cp -a aptarchive/dists.good aptarchive/dists
|
|
find aptarchive/dists -name 'InRelease' -delete
|
|
|
|
# … now everything is fine again
|
|
testsuccessequal "Ign:1 $1 unstable InRelease
|
|
404 Not Found
|
|
Hit:2 $1 unstable Release
|
|
Get:4 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') B]
|
|
Reading package lists..." aptget update
|
|
testfileequal 'listsdir.lst' "$(listcurrentlistsdirectory)"
|
|
|
|
webserverconfig 'aptwebserver::support::modified-since' 'false'
|
|
webserverconfig 'aptwebserver::support::last-modified' 'false'
|
|
testsuccessequal "Ign:1 $1 unstable InRelease
|
|
404 Not Found
|
|
Get:2 $1 unstable Release [$(stat -c '%s' 'aptarchive/dists/unstable/Release') B]
|
|
Reading package lists..." aptget update
|
|
webserverconfig 'aptwebserver::support::modified-since' 'true'
|
|
webserverconfig 'aptwebserver::support::last-modified' 'true'
|
|
|
|
rm -rf aptarchive/dists
|
|
cp -a aptarchive/dists.good aptarchive/dists
|
|
|
|
# new release file, but the indexes are the same
|
|
redatereleasefiles '+2 hours'
|
|
|
|
rm -rf rootdir/var/lib/apt/lists.good
|
|
cp -a rootdir/var/lib/apt/lists rootdir/var/lib/apt/lists.good
|
|
testsuccessequal "Get:1 $1 unstable InRelease [$(stat -c '%s' 'aptarchive/dists/unstable/InRelease') B]
|
|
Reading package lists..." aptget update
|
|
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
cp -a rootdir/var/lib/apt/lists.good rootdir/var/lib/apt/lists
|
|
find rootdir/var/lib/apt/lists -name '*_Packages*' -delete
|
|
testsuccessequal "Get:1 $1 unstable InRelease [$(stat -c '%s' 'aptarchive/dists/unstable/InRelease') B]
|
|
Get:2 $1 unstable/main amd64 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-amd64/Packages.gz') B]
|
|
Get:3 $1 unstable/main i386 Packages [$(stat -c '%s' 'aptarchive/dists/unstable/main/binary-i386/Packages.gz') B]
|
|
Reading package lists..." aptget update
|
|
|
|
rm -rf aptarchive/dists
|
|
cp -a aptarchive/dists.good aptarchive/dists
|
|
}
|
|
|
|
changetowebserver
|
|
methodtest "http://localhost:${APTHTTPPORT}"
|
|
|
|
changetohttpswebserver
|
|
methodtest "https://localhost:${APTHTTPSPORT}"
|