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
|
#!/bin/sh
set -e
TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
setupenvironment
configarchitecture 'amd64'
insertpackage 'unstable' 'okay' 'all' '1'
insertpackage 'unstable' 'upgrade' 'all' '2'
insertpackage 'unstable' 'unneeded' 'all' '1'
insertpackage 'unstable' 'later' 'all' '1'
insertpackage 'unstable' 'bad-level0' 'all' '1' 'Depends: unneeded, unknown'
insertpackage 'unstable' 'bad-level1' 'all' '1' 'Depends: bad-level0'
insertpackage 'unstable' 'bad-upgrade-level0' 'all' '2' 'Depends: unneeded, unknown'
insertpackage 'unstable' 'bad-upgrade-level1' 'all' '2' 'Depends: bad-upgrade-level0 (>= 2)'
insertpackage 'unstable' 'bad-conflict-level0' 'all' '1' 'Depends: unneeded
Conflicts: bad-conflict-level2'
insertpackage 'unstable' 'bad-conflict-level1' 'all' '1' 'Depends: bad-conflict-level0'
insertpackage 'unstable' 'bad-conflict-level2' 'all' '1' 'Depends: bad-conflict-level1'
insertinstalledpackage 'upgrade' 'all' '1'
insertinstalledpackage 'bad-upgrade' 'all' '1'
insertinstalledpackage 'bad-upgrade-level0' 'all' '1'
insertinstalledpackage 'bad-upgrade-level1' 'all' '1'
insertfoos() {
insertpackage 'unstable' "foo-${1}-level0" 'all' '1' "${2}: unknown | unknown | okay | later"
insertpackage 'unstable' "foo-${1}-level1" 'all' '1' "${2}: bad-level0 | bad-level0 | okay | later"
insertpackage 'unstable' "foo-${1}-level2" 'all' '1' "${2}: bad-level1 | bad-level1 | okay | later"
insertpackage 'unstable' "foo-${1}-upgrade-level0" 'all' '1' "${2}: bad-upgrade (>= 2) | okay | upgrade (>= 2) | later"
insertpackage 'unstable' "foo-${1}-upgrade-level1" 'all' '1' "${2}: bad-upgrade-level0 (>= 2) | bad-upgrade-level0 (>= 2) | bad-level0 | okay | upgrade (>= 2) | later"
insertpackage 'unstable' "foo-${1}-upgrade-level2" 'all' '1' "${2}: bad-upgrade-level1 (>= 2) | bad-upgrade-level1 (>= 2) | bad-level1 | okay | upgrade (>= 2) | later"
insertpackage 'unstable' "foo-${1}-conflict" 'all' '1' "${2}: unknown | bad-conflict-level2 | okay | later"
}
insertfoos 'd' 'Depends'
insertfoos 'r' 'Recommends'
setupaptarchive
_testsuccessheadtailequal() {
local TYPE="$1"
shift
msggroup "testsuccess${TYPE}equal"
local HEADLINES="$1"
local CMP="$2"
shift 2
testsuccesswithglobalerror 'testsuccess' 'EW' "$@"
cp "${TMPWORKINGDIRECTORY}/rootdir/tmp/testsuccess.output" "${TMPWORKINGDIRECTORY}/rootdir/tmp/testsuccess${TYPE}equal.output"
testsuccessequal "$CMP" "${TYPE}" -n "$HEADLINES" "${TMPWORKINGDIRECTORY}/rootdir/tmp/testsuccess${TYPE}equal.output"
msggroup
}
testsuccessheadequal() {
_testsuccessheadtailequal 'head' "$@"
}
testsuccesstailequal() {
_testsuccessheadtailequal 'tail' "$@"
}
checkfoos() {
msgmsg 'Install checks with foos dependency type' "$2"
for level in 0 1 2; do
testsuccessheadequal 7 "Reading package lists...
Building dependency tree...
The following additional packages will be installed:
okay
The following NEW packages will be installed:
foo-${1}-level${level} okay
0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded." apt install foo-${1}-level${level} -s
testsuccessheadequal 9 "Reading package lists...
Building dependency tree...
The following additional packages will be installed:
upgrade
The following NEW packages will be installed:
foo-${1}-upgrade-level${level}
The following packages will be upgraded:
upgrade
1 upgraded, 1 newly installed, 0 to remove and $((2-${level})) not upgraded." apt install foo-${1}-upgrade-level${level} -s
done
testsuccessheadequal 7 "Reading package lists...
Building dependency tree...
The following additional packages will be installed:
okay
The following NEW packages will be installed:
foo-${1}-conflict okay
0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded." apt install foo-${1}-conflict -s
}
checkfoos 'd' 'Depends'
checkfoos 'r' 'Recommends'
TEST_WITH_APTITUDE=false
msgtest 'Check if aptitude is available for additional tests'
if dpkg-checkbuilddeps -d 'aptitude' /dev/null >/dev/null 2>&1; then
TEST_WITH_APTITUDE=true
# we don't document aptitude config options
sed -i -e '/^#x-apt-configure-index/ d' "$(getaptconfig)"
msgpass
else
msgskip 'not installed'
fi
if $TEST_WITH_APTITUDE; then
OKAYAPTITUDE='0 packages upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
Need to get 0 B of archives. After unpacking 86.0 kB will be used.
Would download/install/remove packages.'
testsuccesstailequal 3 "$OKAYAPTITUDE" aptitude install foo-d-level2 -sy
testsuccesstailequal 3 "$OKAYAPTITUDE" aptitude install foo-r-level2 -sy
testsuccesstailequal 3 "$OKAYAPTITUDE" aptitude install foo-d-conflict -sy
testsuccesstailequal 3 "$OKAYAPTITUDE" aptitude install foo-r-conflict -sy
fi
testfailure apt install bad-upgrade-level1 -s
testfailure apt install bad-conflict-level2 -s
if $TEST_WITH_APTITUDE; then
testsuccesstailequal 6 'The following packages have been kept back:
bad-upgrade-level1
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
Would download/install/remove packages.' aptitude install bad-upgrade-level1 -sy
# aptitude does not show the kept back message in this case…
testsuccesstailequal 4 'No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
Would download/install/remove packages.' aptitude install bad-conflict-level2 -sy
fi
|