summaryrefslogtreecommitdiff
path: root/test/integration
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2014-03-10 20:57:07 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2014-03-13 13:58:46 +0100
commit33677a0cddd552f96963eac6dc74d8ffe9c1f2f6 (patch)
tree118a6bf481ed5fb1663721aa07d24ee25f6884fa /test/integration
parentb9b0f6222c489db78331cc8be3c093538d22c70b (diff)
support kfreebsd and hurd in the kernel hook
kfreebsd as well as hurd kernel packages call the postinst script as well so we just need to enable the correct parsing for installed packages and disable the "protect every version" hammer for them.
Diffstat (limited to 'test/integration')
-rw-r--r--test/integration/framework2
-rwxr-xr-xtest/integration/test-kernel-helper-autoremove44
2 files changed, 35 insertions, 11 deletions
diff --git a/test/integration/framework b/test/integration/framework
index dad8c99f0..6502dbad1 100644
--- a/test/integration/framework
+++ b/test/integration/framework
@@ -194,7 +194,7 @@ setupenvironment() {
mkdir rootdir aptarchive keys
cd rootdir
mkdir -p etc/apt/apt.conf.d etc/apt/sources.list.d etc/apt/trusted.gpg.d etc/apt/preferences.d
- mkdir -p var/cache var/lib var/log tmp
+ mkdir -p var/cache var/lib/apt var/log tmp
mkdir -p var/lib/dpkg/info var/lib/dpkg/updates var/lib/dpkg/triggers
touch var/lib/dpkg/available
mkdir -p usr/lib/apt
diff --git a/test/integration/test-kernel-helper-autoremove b/test/integration/test-kernel-helper-autoremove
index be30c6f6e..cb1c54e81 100755
--- a/test/integration/test-kernel-helper-autoremove
+++ b/test/integration/test-kernel-helper-autoremove
@@ -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