|
@@ -4,7 +4,7 @@ set -e
|
|
|
TESTDIR=$(readlink -f $(dirname $0))
|
|
|
. $TESTDIR/framework
|
|
|
setupenvironment
|
|
|
-configarchitecture 'native'
|
|
|
+configarchitecture 'amd64'
|
|
|
|
|
|
# the executed script would use the installed apt-config,
|
|
|
# which is outside of our control
|
|
@@ -16,21 +16,21 @@ else
|
|
|
exit 0
|
|
|
fi
|
|
|
|
|
|
-# install fake-dpkg into it
|
|
|
+CURRENTKERNEL="linux-image-$(uname -r)"
|
|
|
+insertinstalledpackage "$CURRENTKERNEL" 'amd64' '1'
|
|
|
+insertinstalledpackage 'linux-image-1.0.0-2-generic' 'amd64' '1.0.0-2'
|
|
|
+insertinstalledpackage 'linux-image-100.0.0-1-generic' 'amd64' '100.0.0-1'
|
|
|
+
|
|
|
+testsuccess aptmark auto "$CURRENTKERNEL" 'linux-image-1.0.0-2-generic' 'linux-image-100.0.0-1-generic'
|
|
|
+
|
|
|
cat > ./fake-dpkg <<EOF
|
|
|
#!/bin/sh
|
|
|
-set -e
|
|
|
-if [ "\$1" = "-l" ]; then
|
|
|
- echo "ii linux-image-1.0.0-2-generic 1.0.0-2 amd64"
|
|
|
- echo "ii linux-image-\$(uname -r) not-used amd64"
|
|
|
- echo "ii linux-image-100.0.0-1-generic 100.0.0.1-1 amd64"
|
|
|
-else
|
|
|
- dpkg "\$@"
|
|
|
-fi
|
|
|
+exec $(aptconfig dump --no-empty --format='%v ' 'DPKG::options') "\$@"
|
|
|
EOF
|
|
|
chmod +x ./fake-dpkg
|
|
|
echo 'Dir::Bin::dpkg "./fake-dpkg";' > rootdir/etc/apt/apt.conf.d/99fakedpkg
|
|
|
|
|
|
+# install fake-dpkg into it
|
|
|
catfail() {
|
|
|
echo >&2
|
|
|
echo >&2 '### List of protected kernels:'
|
|
@@ -59,10 +59,34 @@ testprotected() {
|
|
|
grep -q "^\\^linux-image-$(uname -r)\\\$\$" protected.list && msgpass || catfail
|
|
|
}
|
|
|
|
|
|
+testequal "Reading package lists...
|
|
|
+Building dependency tree...
|
|
|
+Reading state information...
|
|
|
+The following packages will be REMOVED:
|
|
|
+ linux-image-1.0.0-2-generic (1.0.0-2)
|
|
|
+ linux-image-100.0.0-1-generic (100.0.0-1)
|
|
|
+ $CURRENTKERNEL (1)
|
|
|
+0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
|
|
|
+Remv linux-image-1.0.0-2-generic [1.0.0-2]
|
|
|
+Remv linux-image-100.0.0-1-generic [100.0.0-1]
|
|
|
+Remv $CURRENTKERNEL [1]" aptget autoremove -sV
|
|
|
+
|
|
|
testprotected
|
|
|
msgtest 'Check kernel autoremoval protection list does not include' 'old kernel'
|
|
|
grep -q '^\^linux-image-1\.0\.0-2-generic\$$' protected.list && catfail || msgpass
|
|
|
|
|
|
+testequal 'Reading package lists...
|
|
|
+Building dependency tree...
|
|
|
+Reading state information...
|
|
|
+The following packages will be REMOVED:
|
|
|
+ linux-image-1.0.0-2-generic
|
|
|
+0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
|
|
|
+Remv linux-image-1.0.0-2-generic [1.0.0-2]' aptget autoremove -s
|
|
|
+
|
|
|
testprotected 1.0.0-2-generic
|
|
|
msgtest 'Check kernel autoremoval protection list includes' 'installed kernel'
|
|
|
grep -q '^\^linux-image-1\.0\.0-2-generic\$$' protected.list && msgpass || catfail
|
|
|
+testequal 'Reading package lists...
|
|
|
+Building dependency tree...
|
|
|
+Reading state information...
|
|
|
+0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget autoremove -s
|