]> git.saurik.com Git - apt.git/blob - test/integration/test-apt-get-clean
run update post-invokes even on (partial) failures
[apt.git] / test / integration / test-apt-get-clean
1 #!/bin/sh
2 set -e
3
4 TESTDIR="$(readlink -f "$(dirname "$0")")"
5 . "$TESTDIR/framework"
6
7 setupenvironment
8 configarchitecture 'amd64'
9
10 insertpackage 'testing' 'foo' 'all' '1'
11 insertpackage 'unstable' 'foo' 'all' '2'
12 insertinstalledpackage 'foo' 'all' '3'
13
14 setupaptarchive --no-update
15
16 mkdir -p rootdir/var/lib/apt/lists/lost+found
17 testsuccess apt update
18
19 # nothing to do always works
20 testsuccess aptget clean
21 testsuccess aptget clean -s
22
23 # generate some dirt and clean it up
24 touch rootdir/var/lib/apt/lists/partial/http.debian.net_debian_dists_sid_main_i18n_Translation-en
25 mkdir -p rootdir/var/cache/apt/archives/lost+found
26 touch rootdir/var/cache/apt/archives/foo_1_all.deb
27 touch rootdir/var/cache/apt/archives/foo_2_all.deb
28 touch rootdir/var/cache/apt/archives/foo_3_all.deb
29 touch rootdir/var/cache/apt/archives/foo_4_all.deb
30
31 testsuccess aptget clean
32
33 testfailure test -e rootdir/var/lib/apt/lists/partial/http.debian.net_debian_dists_sid_main_i18n_Translation-en
34 testfailure test -e rootdir/var/cache/apt/archives/foo_1_all.deb
35 testfailure test -e rootdir/var/cache/apt/archives/foo_2_all.deb
36 testfailure test -e rootdir/var/cache/apt/archives/foo_3_all.deb
37 testfailure test -e rootdir/var/cache/apt/archives/foo_4_all.deb
38
39 if [ "$(id -u)" != '0' ]; then
40 msgmsg 'No clean if lock can not be acquired'
41 touch rootdir/var/cache/apt/archives/foo_4_all.deb
42 touch rootdir/var/cache/apt/archives/lock
43 chmod 444 rootdir/var/cache/apt/archives/lock
44 testfailure apt clean
45 testsuccess test -e rootdir/var/cache/apt/archives/foo_4_all.deb
46 chmod 644 rootdir/var/cache/apt/archives/lock
47 fi
48
49 directorygone() {
50 rm -rf "$1"
51 testsuccess apt autoclean
52 testfailure test -d "$1"
53 testsuccess apt clean
54 # clean creates an empty partial directory via GetLock
55 if [ "$(basename "$1")" = 'partial' ]; then
56 testsuccess test -d "$1"
57 else
58 testfailure test -d "$1"
59 fi
60 }
61 msgmsg 'Partial directory missing'
62 directorygone 'rootdir/var/cache/apt/archives/partial'
63 directorygone 'rootdir/var/lib/apt/lists/partial'
64
65 msgmsg 'Archives directory missing'
66 directorygone 'rootdir/var/cache/apt/archives'
67 directorygone 'rootdir/var/lib/apt/lists'
68
69 msgmsg 'apt directory missing'
70 directorygone 'rootdir/var/cache/apt'
71 directorygone 'rootdir/var/lib/apt'