diff options
Diffstat (limited to 'test/integration/test-apt-get-clean')
-rwxr-xr-x | test/integration/test-apt-get-clean | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/test/integration/test-apt-get-clean b/test/integration/test-apt-get-clean new file mode 100755 index 0000000..d050732 --- /dev/null +++ b/test/integration/test-apt-get-clean @@ -0,0 +1,88 @@ +#!/bin/sh +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" + +setupenvironment +configarchitecture 'amd64' + +insertpackage 'testing' 'foo' 'all' '1' +insertpackage 'unstable' 'foo' 'all' '2' +insertpackage 'experimental' 'foo' 'all' '1:1' +insertinstalledpackage 'foo' 'all' '3' + +setupaptarchive --no-update + +mkdir -p rootdir/var/lib/apt/lists/lost+found +testsuccess apt update + +# nothing to do always works +testsuccess aptget clean +testsuccess aptget clean -s + +# generate some dirt and clean it up +generatedirt() { + touch rootdir/var/lib/apt/lists/partial/http.debian.net_debian_dists_sid_main_i18n_Translation-en + mkdir -p rootdir/var/cache/apt/archives/lost+found + touch rootdir/var/cache/apt/archives/foo_1_all.deb + touch rootdir/var/cache/apt/archives/foo_1%3a1_all.deb + touch rootdir/var/cache/apt/archives/foo_2%3a1_all.deb + touch rootdir/var/cache/apt/archives/foo_2_all.deb + touch rootdir/var/cache/apt/archives/foo_3_all.deb + touch rootdir/var/cache/apt/archives/foo_4_all.deb +} + +generatedirt +testsuccess aptget autoclean +testsuccess test -e rootdir/var/lib/apt/lists/partial/http.debian.net_debian_dists_sid_main_i18n_Translation-en +testsuccess test -e rootdir/var/cache/apt/archives/foo_1_all.deb +testsuccess test -e rootdir/var/cache/apt/archives/foo_1%3a1_all.deb +testfailure test -e rootdir/var/cache/apt/archives/foo_2%3a1_all.deb +testsuccess test -e rootdir/var/cache/apt/archives/foo_2_all.deb +testfailure test -e rootdir/var/cache/apt/archives/foo_3_all.deb +testfailure test -e rootdir/var/cache/apt/archives/foo_4_all.deb + +generatedirt +testsuccess aptget clean +testfailure test -e rootdir/var/lib/apt/lists/partial/http.debian.net_debian_dists_sid_main_i18n_Translation-en +testfailure test -e rootdir/var/cache/apt/archives/foo_1_all.deb +testfailure test -e rootdir/var/cache/apt/archives/foo_1%3a1_all.deb +testfailure test -e rootdir/var/cache/apt/archives/foo_2%3a1_all.deb +testfailure test -e rootdir/var/cache/apt/archives/foo_2_all.deb +testfailure test -e rootdir/var/cache/apt/archives/foo_3_all.deb +testfailure test -e rootdir/var/cache/apt/archives/foo_4_all.deb + +if [ "$(id -u)" != '0' ]; then + msgmsg 'No clean if lock can not be acquired' + touch rootdir/var/cache/apt/archives/foo_4_all.deb + touch rootdir/var/cache/apt/archives/lock + chmod 444 rootdir/var/cache/apt/archives/lock + testfailure apt clean + testsuccess test -e rootdir/var/cache/apt/archives/foo_4_all.deb + chmod 644 rootdir/var/cache/apt/archives/lock +fi + +directorygone() { + rm -rf "$1" + testsuccess apt autoclean + testfailure test -d "$1" + testsuccess apt clean + # clean creates an empty partial directory via GetLock + if [ "$(basename "$1")" = 'partial' ]; then + testsuccess test -d "$1" + else + testfailure test -d "$1" + fi +} +msgmsg 'Partial directory missing' +directorygone 'rootdir/var/cache/apt/archives/partial' +directorygone 'rootdir/var/lib/apt/lists/partial' + +msgmsg 'Archives directory missing' +directorygone 'rootdir/var/cache/apt/archives' +directorygone 'rootdir/var/lib/apt/lists' + +msgmsg 'apt directory missing' +directorygone 'rootdir/var/cache/apt' +directorygone 'rootdir/var/lib/apt' |