#!/bin/sh set -e TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment configarchitecture 'native' # the executed script would use the installed apt-config, # which is outside of our control msgtest 'Check that the installed apt-config supports' '--no-empty' if apt-config dump --no-empty >/dev/null 2>&1; then msgpass else msgskip exit 0 fi # install fake-dpkg into it cat > ./fake-dpkg < rootdir/etc/apt/apt.conf.d/99fakedpkg catfail() { echo >&2 echo >&2 '### List of protected kernels:' cat >&2 protected.list msgfail } testprotected() { rm -f rootdir/etc/apt/apt.conf.d/01autoremove-kernels protected.list testsuccess runapt sh ${TESTDIR}/../../debian/apt.auto-removal.sh "$@" msgtest 'Check kernel autoremoval protection list' 'is created' test -e rootdir/etc/apt/apt.conf.d/01autoremove-kernels && msgpass || msgfail msgtest 'Check kernel autoremoval protection list' 'can be dumped' aptconfig dump --no-empty --format '%v%n' 'APT::NeverAutoRemove' >protected.list 2>&1 && msgpass || catfail msgtest 'Check kernel autoremoval protection list' 'can be parsed' grep -q '^[A-Z]: ' protected.list && catfail || msgpass msgtest 'Check kernel autoremoval protection list includes' 'most recent kernel' grep -q '^\^linux-image-100\.0\.0-1-generic\$$' protected.list && msgpass || catfail msgtest 'Check kernel autoremoval protection list includes' 'running kernel' grep -q "^\\^linux-image-$(uname -r)\\\$\$" protected.list && msgpass || catfail } 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 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