blob: 7a115b03ffec11b0f5408e6aa192536ec2a3c138 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
#!/bin/sh
set -e
TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
setupenvironment
configarchitecture 'amd64' 'i386'
insertpackage 'unstable' 'bar' 'amd64,i386' '1'
insertpackage 'unstable' 'uninstalled' 'all' '1'
insertpackage 'unstable' 'uninstalled-native' 'amd64' '1'
insertinstalledpackage 'foo' 'all' '1'
insertinstalledpackage 'bar' 'amd64' '1'
setupaptarchive
# dpkg is "installed" by our test framework
testdpkginstalled dpkg
testnoautopkg() {
testempty aptmark showauto
testempty aptcache -q=1 showauto
testsuccessequal 'bar
dpkg
foo' aptmark showmanual
testsuccessequal 'bar
foo' aptmark showmanual bar foo uninstalled
}
testfooisauto() {
testsuccessequal 'foo' aptmark showauto
testsuccessequal 'foo' aptcache -q=1 showauto
testsuccessequal 'foo' aptmark showauto foo
testsuccessequal 'foo' aptcache -q=1 showauto foo
testsuccessequal 'bar
dpkg' aptmark showmanual
testsuccessequal 'bar' aptmark showmanual bar
}
testmarkonpkgasauto() {
testsuccess $1 -q=1 $2 foo
testfooisauto
testsuccess $1 -q=1 $2 foo
testfooisauto
testsuccess $1 -q=1 $3 foo
testnoautopkg
testsuccess $1 -q=1 $3 foo
testnoautopkg
}
testfailureequal 'E: No packages found' aptmark auto
testfailureequal 'E: No packages found' aptmark manual
testnoautopkg
testmarkonpkgasauto 'aptmark' 'auto' 'manual'
testmarkonpkgasauto 'aptmark' 'markauto' 'unmarkauto'
testmarkonpkgasauto 'aptget' 'markauto' 'unmarkauto'
testnoholdpkg() {
testempty aptmark showhold
testempty aptmark showholds # typical "typo"
testempty aptmark showhold dpkg
testempty aptmark showholds dpkg
}
testpkgonhold() {
testsuccessequal "$1" aptmark showhold
testsuccessequal "$1" aptmark showholds
testsuccessequal "$1" aptmark showhold $1
testsuccessequal "$1" aptmark showholds $1
}
testmarkonepkgashold() {
testsuccess aptmark hold $1
testpkgonhold $1
testsuccess aptmark hold $1
testpkgonhold $1
testsuccess aptmark unhold $1
testnoholdpkg
testsuccess aptmark unhold $1
testnoholdpkg
}
testfailureequal 'E: No packages found' aptmark hold
testfailureequal 'E: No packages found' aptmark unhold
testnoholdpkg
testmarkonepkgashold 'foo'
testmarkonepkgashold 'bar'
msgtest 'dpkg supports --merge-avail via' 'stdin'
if dpkg --merge-avail - < /dev/null >/dev/null 2>&1; then
msgpass
else
msgskip 'dpkg version too old'
exit 0
fi
testmarkonepkgashold 'uninstalled'
testmarkonepkgashold 'uninstalled-native'
testsuccessequal 'uninstalled set on hold.' aptmark hold uninstalled
testsuccessequal 'uninstalled-native set on hold.' aptmark hold uninstalled-native
#FIXME: holds on uninstalled packages are not persistent in dpkg
testsuccessequal 'Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
uninstalled uninstalled-native
The following held packages will be changed:
uninstalled-native
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Inst uninstalled (1 unstable [all])
Inst uninstalled-native (1 unstable [amd64])
Conf uninstalled (1 unstable [all])
Conf uninstalled-native (1 unstable [amd64])' aptget install uninstalled uninstalled-native -s
testsuccess aptmark unhold uninstalled uninstalled-native
testselections() {
testsuccess aptmark hold "$1"
testsuccessequal "$1" aptmark showholds "$1"
testsuccess aptmark unhold "$1"
testsuccessequal "$1" aptmark showinstalls "$1"
testsuccess aptmark hold "$1"
testsuccessequal "$1" aptmark showholds "$1"
testsuccess aptmark install "$1"
testsuccessequal "$1" aptmark showinstalls "$1"
testsuccess aptmark remove "$1"
testsuccessequal "$1" aptmark showremoves "$1"
testsuccess aptmark purge "$1"
testsuccessequal "$1" aptmark showpurges "$1"
}
testselections 'foo'
testselections 'bar'
testsuccessequal 'Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be REMOVED:
bar* foo*
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
Purg bar [1]
Purg foo [1]' aptget dselect-upgrade -s
testuninstalledselections() {
testsuccess aptmark hold "$1"
testsuccessequal "$1" aptmark showholds "$1"
testsuccess aptmark unhold "$1"
testsuccessequal "$1" aptmark showremoves "$1"
testsuccess aptmark hold "$1"
testsuccessequal "$1" aptmark showholds "$1"
testsuccess aptmark install "$1"
testsuccessequal "$1" aptmark showinstalls "$1"
}
testuninstalledselections 'uninstalled'
testuninstalledselections 'uninstalled-native'
|