1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
|
#!/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}"
|