4 TESTDIR
=$(readlink -f $(dirname $0))
8 configarchitecture
"i386"
13 STATUS
=$(readlink -f rootdir/var/lib/dpkg/status)
14 APTARCHIVE
=$(readlink -f aptarchive)
20 testsuccessequal
"Package files:
21 $(echo "$SP" | awk '{ printf("%3s\n",$0) }') ${STATUS}
23 $(echo "$AP" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} Packages
25 Pinned packages:" aptcache policy
"$@"
31 testequalpolicy
100 500
32 testequalpolicy
990 500 -t now
34 sed -i aptarchive
/Release
-e 1i
"NotAutomatic: yes"
37 testequalpolicy
100 1 -o Test
=NotAutomatic
38 testequalpolicy
990 1 -o Test
=NotAutomatic
-t now
40 sed -i aptarchive
/Release
-e 1i
"ButAutomaticUpgrades: yes"
43 testequalpolicy
100 100 -o Test
=ButAutomaticUpgrades
44 testequalpolicy
990 100 -o Test
=ButAutomaticUpgrades
-t now
46 sed -i aptarchive
/Release
-e 's#NotAutomatic: yes#NotAutomatic: no#' -e '/ButAutomaticUpgrades: / d'
49 testequalpolicy
100 500 -o Test
=Automatic
50 testequalpolicy
990 500 -o Test
=Automatic
-t now
52 sed -i aptarchive
/Release
-e '/NotAutomatic: / d' -e '/ButAutomaticUpgrades: / d'
55 msgmsg
'Test with not signed archive'
57 rm -rf rootdir
/var
/lib
/apt
58 testwarning aptget update
--allow-insecure-repositories
62 msgmsg
'Test with signed but no key in trusted'
64 rm -rf rootdir
/var
/lib
/apt
65 signreleasefiles
'Marvin Paranoid'
66 testwarning aptget update
--allow-insecure-repositories
70 # much the same tests will be executed below in more detail again for this one
71 msgmsg
'Test with signed and valid key'
73 rm -rf rootdir
/var
/lib
/apt
74 signreleasefiles
'Joe Sixpack'
75 testsuccess aptget update
79 msgmsg
'Test with specific packages'
81 buildsimplenativepackage
"coolstuff" "all" "1.0" "stable"
82 buildsimplenativepackage
"coolstuff" "all" "2.0~bpo1" "backports"
86 testequalpolicycoolstuff
() {
87 local INSTALLED
="${1:-(none)}"
88 local CANDIDATE
="${2:-(none)}"
96 [ "$1" = "2.0~bpo1" ] && IB
="***" && SB
="
97 100 $STATUS" || IB
=" "
98 [ "$1" = "1.0" ] && IS
="***" && SS
="
99 100 $STATUS" || IS
=" "
102 if [ ! "$7" = "2.0~bpo2" ]; then
104 BPO1ARCHIVE
=" $(echo "$AB" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} backports/main all Packages"
108 $(echo "$AB" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} backports/main all Packages"
109 SB
="$(echo "$SB" | tail -n 1)"
113 testsuccessequal
"coolstuff:
114 Installed: $INSTALLED
115 Candidate: $CANDIDATE
116 Version table:${BPO2ARCHIVE}
120 $(echo "$AS" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} stable/main all Packages$SS" \
121 aptcache policy coolstuff
-o Policy
=${INSTALLED}-${CANDIDATE}-${AB}-${AS}-${PB} $
*
124 testequalpolicycoolstuff
"" "2.0~bpo1" 500 500 500 ""
125 testequalpolicycoolstuff
"" "1.0" 500 990 500 "" -t stable
126 testequalpolicycoolstuff
"" "2.0~bpo1" 990 500 990 "" -t backports
128 Pin: release n=backports
129 Pin-Priority: 200" > rootdir
/etc
/apt
/preferences
130 testequalpolicycoolstuff
"" "1.0" 200 500 200 "" -o Test
=GlobalPin
131 testequalpolicycoolstuff
"" "1.0" 200 990 200 "" -o Test
=GlobalPin
-t stable
132 testequalpolicycoolstuff
"" "2.0~bpo1" 990 500 990 "" -o Test
=GlobalPin
-t backports
134 Pin: release n=backports
135 Pin-Priority: 600" > rootdir
/etc
/apt
/preferences
136 testequalpolicycoolstuff
"" "2.0~bpo1" 600 500 600 "" -o Test
=GlobalPin
137 testequalpolicycoolstuff
"" "1.0" 600 990 600 "" -o Test
=GlobalPin
-t stable
138 echo "Package: coolstuff
139 Pin: release n=backports
140 Pin-Priority: 200" > rootdir
/etc
/apt
/preferences
141 #FIXME: policy can't differentiate between two sources where one has a package specific pin in place
142 # testequalpolicycoolstuff "" "1.0" 500 500 200 "2.0~bpo1" -o Test=PackagePin
143 # testequalpolicycoolstuff "" "1.0" 990 500 200 "2.0~bpo1" -o Test=PackagePin -t backports
144 testequalpolicycoolstuff
"" "1.0" 500 990 200 "2.0~bpo1" -o Test
=PackagePin
-t stable
145 echo "Package: coolstuff
146 Pin: release n=backports
147 Pin-Priority: 600" > rootdir
/etc
/apt
/preferences
148 testequalpolicycoolstuff
"" "2.0~bpo1" 500 500 600 "2.0~bpo1" -o Test
=PackagePin
149 testequalpolicycoolstuff
"" "1.0" 500 990 600 "2.0~bpo1" -o Test
=PackagePin
-t stable
150 testequalpolicycoolstuff
"" "2.0~bpo1" 990 500 600 "2.0~bpo1" -o Test
=PackagePin
-t backports
152 echo "Package: coolstuff
153 Pin: release n=backports
154 Pin-Priority: -1" > rootdir
/etc
/apt
/preferences
155 # testequalpolicycoolstuff "" "1.0" 500 500 -1 "2.0~bpo1" -o Test=PackagePin
156 # testequalpolicycoolstuff "" "1.0" 990 500 -1 "2.0~bpo1" -o Test=PackagePin -t backports
157 # testequalpolicycoolstuff "" "1.0" 500 990 -1 "2.0~bpo1" -o Test=PackagePin -t stable
159 rm rootdir
/etc
/apt
/preferences
160 sed -i aptarchive
/dists
/backports
/Release
-e 1i
"NotAutomatic: yes"
164 testequalpolicycoolstuff
"" "1.0" 1 500 1 "" -o Test
=NotAutomatic
165 testequalpolicycoolstuff
"" "1.0" 1 990 1 "" -o Test
=NotAutomatic
-t stable
166 testequalpolicycoolstuff
"" "2.0~bpo1" 990 500 990 "" -o Test
=NotAutomatic
-t backports
168 Pin: release n=backports
169 Pin-Priority: 200" > rootdir
/etc
/apt
/preferences
170 testequalpolicycoolstuff
"" "1.0" 200 500 200 "" -o Test
=NotAutomatic
172 Pin: release n=backports
173 Pin-Priority: 600" > rootdir
/etc
/apt
/preferences
174 testequalpolicycoolstuff
"" "2.0~bpo1" 600 500 600 "" -o Test
=NotAutomatic
175 testequalpolicycoolstuff
"" "1.0" 600 990 600 "" -o Test
=NotAutomatic
-t stable
176 echo "Package: coolstuff
177 Pin: release n=backports
178 Pin-Priority: 200" > rootdir
/etc
/apt
/preferences
179 testequalpolicycoolstuff
"" "1.0" 1 500 200 "2.0~bpo1" -o Test
=NotAutomatic
180 echo "Package: coolstuff
181 Pin: release n=backports
182 Pin-Priority: 600" > rootdir
/etc
/apt
/preferences
183 testequalpolicycoolstuff
"" "2.0~bpo1" 1 500 600 "2.0~bpo1" -o Test
=NotAutomatic
184 testequalpolicycoolstuff
"" "2.0~bpo1" 990 500 600 "2.0~bpo1" -o Test
=NotAutomatic
-t backports
185 testequalpolicycoolstuff
"" "1.0" 1 990 600 "2.0~bpo1" -o Test
=NotAutomatic
-t stable
187 rm rootdir
/etc
/apt
/preferences
188 sed -i aptarchive
/dists
/backports
/Release
-e 1i
"ButAutomaticUpgrades: yes"
192 testequalpolicycoolstuff
"" "1.0" 100 500 100 "" -o Test
=ButAutomaticUpgrades
193 testequalpolicycoolstuff
"" "1.0" 100 990 100 "" -o Test
=ButAutomaticUpgrades
-t stable
194 testequalpolicycoolstuff
"" "2.0~bpo1" 990 500 990 "" -o Test
=ButAutomaticUpgrades
-t backports
196 Pin: release n=backports
197 Pin-Priority: 200" > rootdir
/etc
/apt
/preferences
198 testequalpolicycoolstuff
"" "1.0" 200 500 200 "" -o Test
=ButAutomaticUpgrades
200 Pin: release n=backports
201 Pin-Priority: 600" > rootdir
/etc
/apt
/preferences
202 testequalpolicycoolstuff
"" "2.0~bpo1" 600 500 600 "" -o Test
=ButAutomaticUpgrades
203 testequalpolicycoolstuff
"" "1.0" 600 990 600 "" -o Test
=ButAutomaticUpgrades
-t stable
204 echo "Package: coolstuff
205 Pin: release n=backports
206 Pin-Priority: 200" > rootdir
/etc
/apt
/preferences
207 testequalpolicycoolstuff
"" "1.0" 100 500 200 "2.0~bpo1" -o Test
=ButAutomaticUpgrades
208 echo "Package: coolstuff
209 Pin: release n=backports
210 Pin-Priority: 600" > rootdir
/etc
/apt
/preferences
211 testequalpolicycoolstuff
"" "2.0~bpo1" 100 500 600 "2.0~bpo1" -o Test
=ButAutomaticUpgrades
212 testequalpolicycoolstuff
"" "2.0~bpo1" 990 500 600 "2.0~bpo1" -o Test
=ButAutomaticUpgrades
-t backports
213 testequalpolicycoolstuff
"" "1.0" 100 990 600 "2.0~bpo1" -o Test
=ButAutomaticUpgrades
-t stable
215 rm rootdir
/etc
/apt
/preferences
216 testsuccess aptget
install coolstuff
-y
217 testequalpolicycoolstuff
"1.0" "1.0" 100 500 100 "" -o Test
=ButAutomaticUpgrades
218 testsuccess aptget dist
-upgrade -y
219 testequalpolicycoolstuff
"1.0" "1.0" 100 500 100 "" -o Test
=ButAutomaticUpgrades
220 testequalpolicycoolstuff
"1.0" "1.0" 100 990 100 "" -o Test
=ButAutomaticUpgrades
-t stable
221 testequalpolicycoolstuff
"1.0" "2.0~bpo1" 990 500 990 "" -o Test
=ButAutomaticUpgrades
-t backports
223 testsuccess aptget
install coolstuff
-t backports
-y
224 testequalpolicycoolstuff
"2.0~bpo1" "2.0~bpo1" 100 500 100 "" -o Test
=ButAutomaticUpgrades
225 testsuccess aptget dist
-upgrade -y
226 testequalpolicycoolstuff
"2.0~bpo1" "2.0~bpo1" 100 500 100 "" -o Test
=ButAutomaticUpgrades
227 testequalpolicycoolstuff
"2.0~bpo1" "2.0~bpo1" 100 990 100 "" -o Test
=ButAutomaticUpgrades
-t stable
228 testequalpolicycoolstuff
"2.0~bpo1" "2.0~bpo1" 990 500 990 "" -o Test
=ButAutomaticUpgrades
-t backports
230 rm incoming
/backports.main.pkglist incoming
/backports.main.srclist
231 buildsimplenativepackage
"coolstuff" "all" "2.0~bpo2" "backports"
234 sed -i aptarchive
/dists
/backports
/Release
-e 1i
"NotAutomatic: yes"
238 testequalpolicycoolstuff
"2.0~bpo1" "2.0~bpo1" 1 500 100 "" "2.0~bpo2" -o Test
=NotAutomatic
239 testequalpolicycoolstuff
"2.0~bpo1" "2.0~bpo1" 1 990 100 "" "2.0~bpo2" -o Test
=NotAutomatic
-t stable
240 testequalpolicycoolstuff
"2.0~bpo1" "2.0~bpo2" 990 500 100 "" "2.0~bpo2" -o Test
=NotAutomatic
-t backports
242 sed -i aptarchive
/dists
/backports
/Release
-e 1i
"ButAutomaticUpgrades: yes"
246 testequalpolicycoolstuff
"2.0~bpo1" "2.0~bpo2" 100 500 100 "" "2.0~bpo2" -o Test
=ButAutomaticUpgrades
247 testequalpolicycoolstuff
"2.0~bpo1" "2.0~bpo2" 100 990 100 "" "2.0~bpo2" -o Test
=ButAutomaticUpgrades
-t stable
248 testequalpolicycoolstuff
"2.0~bpo1" "2.0~bpo2" 990 500 100 "" "2.0~bpo2" -o Test
=ButAutomaticUpgrades
-t backports
251 tmppath
=$(readlink -f .)
253 # Check 16-bit integers
254 echo "Package: coolstuff
255 Pin: release n=backports
257 " > rootdir
/etc
/apt
/preferences
259 testsuccess aptget
install -s coolstuff
-o PinPriority
=32767
261 echo "Package: coolstuff
262 Pin: release n=backports
264 " > rootdir
/etc
/apt
/preferences
265 testsuccess aptget
install -s coolstuff
-o PinPriority
=-32768
268 # Check for 32-bit integers
269 echo "Package: coolstuff
270 Pin: release n=backports
272 " > rootdir
/etc
/apt
/preferences
274 testfailureequal
"Reading package lists...
275 E: ${tmppath}/rootdir/etc/apt/preferences: Value 32768 is outside the range of valid pin priorities (-32768 to 32767)" \
276 aptget
install -s coolstuff
-o PinPriority
=32768
279 echo "Package: coolstuff
280 Pin: release n=backports
282 " > rootdir
/etc
/apt
/preferences
284 testfailureequal
"Reading package lists...
285 E: ${tmppath}/rootdir/etc/apt/preferences: Value -32769 is outside the range of valid pin priorities (-32768 to 32767)" \
286 aptget
install -s coolstuff
-o PinPriority
=-32769
288 # Check for 64-bit integers
290 echo "Package: coolstuff
291 Pin: release n=backports
292 Pin-Priority: 2147483648
293 " > rootdir
/etc
/apt
/preferences
295 testfailureequal
"Reading package lists...
296 E: Cannot convert 2147483648 to integer - (34: Numerical result out of range)
297 E: ${tmppath}/rootdir/etc/apt/preferences: Value 2147483648 is outside the range of valid pin priorities (-32768 to 32767)" \
298 aptget
install -s coolstuff
-o PinPriority
=2147483648
301 echo "Package: coolstuff
302 Pin: release n=backports
304 " > rootdir
/etc
/apt
/preferences
306 testfailureequal
"Reading package lists...
307 E: No priority (or zero) specified for pin" \
308 aptget
install -s coolstuff
-o PinPriority
=0