4 TESTDIR
=$
(readlink
-f $
(dirname $0))
7 configarchitecture
'native'
9 # the executed script would use the installed apt-config,
10 # which is outside of our control
11 msgtest
'Check that the installed apt-config supports' '--no-empty'
12 if apt-config dump
--no-empty >/dev
/null
2>&1; then
19 # install fake-dpkg into it
20 cat > .
/fake-dpkg
<<EOF
23 if [ "\$1" = "-l" ]; then
24 echo "ii linux-image-1.0.0-2-generic 1.0.0-2 amd64"
25 echo "ii linux-image-\$(uname -r) not-used amd64"
26 echo "ii linux-image-100.0.0-1-generic 100.0.0.1-1 amd64"
32 echo 'Dir::Bin::dpkg "./fake-dpkg";' > rootdir
/etc
/apt
/apt.conf.d
/99fakedpkg
36 echo >&2 '### List of protected kernels:'
37 cat >&2 protected.list
42 rm -f rootdir
/etc
/apt
/apt.conf.d
/01autoremove-kernels protected.list
44 testsuccess runapt sh
${TESTDIR}/..
/..
/debian
/apt.auto-removal.sh
"$@"
46 msgtest
'Check kernel autoremoval protection list' 'is created'
47 test -e rootdir
/etc
/apt
/apt.conf.d
/01autoremove-kernels
&& msgpass || msgfail
49 msgtest
'Check kernel autoremoval protection list' 'can be dumped'
50 aptconfig dump
--no-empty --format '%v%n' 'APT::NeverAutoRemove' >protected.list
2>&1 && msgpass || catfail
52 msgtest
'Check kernel autoremoval protection list' 'can be parsed'
53 grep -q '^[A-Z]: ' protected.list
&& catfail || msgpass
55 msgtest
'Check kernel autoremoval protection list includes' 'most recent kernel'
56 grep -q '^\^linux-image-100\.0\.0-1-generic\$$' protected.list
&& msgpass || catfail
58 msgtest
'Check kernel autoremoval protection list includes' 'running kernel'
59 grep -q "^\\^linux-image-$(uname -r)\\\$\$" protected.list
&& msgpass || catfail
63 msgtest
'Check kernel autoremoval protection list does not include' 'old kernel'
64 grep -q '^\^linux-image-1\.0\.0-2-generic\$$' protected.list
&& catfail || msgpass
66 testprotected
1.0.0-2-generic
67 msgtest
'Check kernel autoremoval protection list includes' 'installed kernel'
68 grep -q '^\^linux-image-1\.0\.0-2-generic\$$' protected.list
&& msgpass || catfail