]>
Commit | Line | Data |
---|---|---|
1f6cf9e7 DK |
1 | #!/bin/sh |
2 | set -e | |
3 | ||
3abb6a6a DK |
4 | TESTDIR="$(readlink -f "$(dirname "$0")")" |
5 | . "$TESTDIR/framework" | |
1f6cf9e7 DK |
6 | setupenvironment |
7 | configarchitecture 'amd64' 'i386' | |
8 | ||
9 | insertinstalledpackage 'cool' 'all' '1' | |
10 | insertinstalledpackage 'stuff' 'all' '1' | |
188a6fcf | 11 | insertinstalledpackage 'somestuff' 'all' '1' 'Depends: cool, stuff' |
1f6cf9e7 DK |
12 | |
13 | insertpackage 'unstable' 'cool' 'all' '2' 'Multi-Arch: foreign' | |
14 | insertpackage 'unstable' 'stuff' 'all' '2' 'Multi-Arch: foreign' | |
15 | insertpackage 'unstable' 'coolstuff' 'i386,amd64' '2' 'Depends: cool, stuff' | |
081c9d44 DK |
16 | insertpackage 'unstable' 'awesome' 'all' '2' 'Multi-Arch: foreign |
17 | Conflicts: badstuff' | |
18 | insertpackage 'unstable' 'badstuff' 'all' '2' 'Multi-Arch: foreign | |
19 | Conflicts: awesome' | |
1f6cf9e7 DK |
20 | insertpackage 'unstable' 'awesomecoolstuff' 'i386' '2' 'Depends: coolstuff, awesome' |
21 | ||
22 | insertpackage 'experimental' 'cool' 'all' '3' 'Multi-Arch: foreign' | |
23 | insertpackage 'experimental' 'stuff' 'all' '3' 'Multi-Arch: foreign' | |
24 | insertpackage 'experimental' 'coolstuff' 'i386,amd64' '3' 'Depends: cool, stuff' | |
25 | ||
26 | setupaptarchive | |
27 | ||
92b2e38d DK |
28 | testfailure aptget install --solver dump coolstuff -s |
29 | testsuccess grep ERR_NO_FILENAME rootdir/tmp/testfailure.output | |
7414af7f DK |
30 | export APT_EDSP_DUMP_FILENAME="/nonexistent/apt/edsp.dump" |
31 | testfailure aptget install --solver dump coolstuff -s | |
32 | testsuccess grep ERR_WRITE_ERROR rootdir/tmp/testfailure.output | |
92b2e38d DK |
33 | export APT_EDSP_DUMP_FILENAME="${TMPWORKINGDIRECTORY}/downloaded/dump.edsp" |
34 | ||
25b86db1 | 35 | testfailureequal 'Reading package lists... |
1f6cf9e7 DK |
36 | Building dependency tree... |
37 | Execute external solver... | |
38 | The solver encountered an error of type: ERR_JUST_DUMPING | |
39 | The following information might help you to understand what is wrong: | |
40 | I am too dumb, i can just dump! | |
41 | Please use one of my friends instead! | |
42 | ||
43 | E: External solver failed with: I am too dumb, i can just dump!' aptget install --solver dump coolstuff -s | |
92b2e38d DK |
44 | testsuccess test -s "$APT_EDSP_DUMP_FILENAME" |
45 | rm -f "$APT_EDSP_DUMP_FILENAME" | |
1f6cf9e7 | 46 | |
188a6fcf DK |
47 | testsuccessequal 'Reading package lists... |
48 | Building dependency tree... | |
49 | Execute external solver... | |
50 | The following NEW packages will be installed: | |
51 | coolstuff | |
52 | 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. | |
53 | Inst coolstuff (2 unstable [amd64]) | |
54 | Conf coolstuff (2 unstable [amd64])' aptget install --solver apt coolstuff -s | |
55 | ||
25b86db1 | 56 | testsuccessequal 'Reading package lists... |
1f6cf9e7 DK |
57 | Building dependency tree... |
58 | Execute external solver... | |
59 | The following NEW packages will be installed: | |
60 | coolstuff | |
61 | 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. | |
62 | Inst coolstuff (3 experimental [amd64]) | |
188a6fcf | 63 | Conf coolstuff (3 experimental [amd64])' aptget install --solver apt coolstuff -s -t experimental |
1f6cf9e7 | 64 | |
294a8020 DK |
65 | testsuccessequal "Reading package lists... |
66 | Building dependency tree... | |
67 | Selected version '3' (experimental [amd64]) for 'coolstuff' | |
68 | Execute external solver... | |
69 | The following NEW packages will be installed: | |
70 | coolstuff | |
71 | 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. | |
72 | Inst coolstuff (3 experimental [amd64]) | |
73 | Conf coolstuff (3 experimental [amd64])" aptget install --solver apt coolstuff/experimental -sq=0 | |
74 | ||
75 | testsuccessequal 'Reading package lists... | |
76 | Building dependency tree... | |
77 | Execute external solver... | |
78 | The following NEW packages will be installed: | |
79 | coolstuff | |
80 | 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. | |
81 | Inst coolstuff (3 experimental [amd64]) | |
82 | Conf coolstuff (3 experimental [amd64])' aptget install --solver apt coolstuff=3 -sq=0 | |
83 | ||
25b86db1 | 84 | testsuccessequal 'Reading package lists... |
081c9d44 DK |
85 | Building dependency tree... |
86 | Execute external solver... | |
87 | The following packages will be REMOVED: | |
188a6fcf DK |
88 | somestuff |
89 | 0 upgraded, 0 newly installed, 1 to remove and 2 not upgraded. | |
90 | Remv somestuff [1]' aptget autoremove --solver apt somestuff -s | |
91 | testsuccess aptmark auto cool stuff | |
92 | testsuccessequal 'Reading package lists... | |
93 | Building dependency tree... | |
94 | Reading state information... | |
95 | Execute external solver... | |
96 | The following packages will be REMOVED: | |
97 | cool somestuff stuff | |
98 | 0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded. | |
99 | Remv somestuff [1] | |
100 | Remv cool [1] | |
101 | Remv stuff [1]' aptget autoremove --solver apt somestuff -s | |
102 | ||
73fe49f9 DK |
103 | AUTOREMOVE='apt autoremove' |
104 | if [ -n "$SUDO_USER" ]; then | |
105 | AUTOREMOVE="sudo $AUTOREMOVE" | |
106 | fi | |
188a6fcf DK |
107 | testsuccessequal "Reading package lists... |
108 | Building dependency tree... | |
109 | Reading state information... | |
110 | Execute external solver... | |
111 | The following package was automatically installed and is no longer required: | |
112 | stuff | |
73fe49f9 | 113 | Use '$AUTOREMOVE' to remove it. |
188a6fcf DK |
114 | The following packages will be REMOVED: |
115 | cool* somestuff* | |
116 | 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. | |
117 | Purg somestuff [1] | |
118 | Purg cool [1]" aptget purge --solver apt cool -s | |
081c9d44 | 119 | |
1f6cf9e7 DK |
120 | testsuccess aptget install awesomecoolstuff:i386 -s |
121 | testsuccess aptget install --solver apt awesomecoolstuff:i386 -s | |
122 | ||
92b2e38d | 123 | rm -f "$APT_EDSP_DUMP_FILENAME" |
1f6cf9e7 | 124 | testfailure aptget install --solver dump awesomecoolstuff:i386 -s |
92b2e38d DK |
125 | testsuccess test -s "$APT_EDSP_DUMP_FILENAME" |
126 | testequal 'Install: awesomecoolstuff:i386' grep :i386 "$APT_EDSP_DUMP_FILENAME" | |
a66e1837 | 127 | testfailure grep -e ':amd64' -e 'Architecture: any' "$APT_EDSP_DUMP_FILENAME" |
1f6cf9e7 | 128 | |
172947cd DK |
129 | testsuccess aptget dist-upgrade -s |
130 | testsuccess aptget dist-upgrade -s --solver apt | |
131 | ||
132 | testsuccess aptget upgrade -s | |
133 | testsuccess aptget upgrade -s --solver apt | |
134 | ||
081c9d44 DK |
135 | testfailure aptget install awesome badstuff -s |
136 | testfailure aptget install awesome badstuff -s --solver apt | |
137 | testsuccess grep 'ERR_UNSOLVABLE' rootdir/tmp/testfailure.output | |
138 | ||
1f6cf9e7 | 139 | configarchitecture 'armel' |
7414af7f DK |
140 | testfailure aptget install --solver apt awesomecoolstuff:i386 -s |
141 | msgtest 'An invalid EDSP file generates a' 'hard error' | |
87d6947d | 142 | if echo "Request: This is a test\nFoo: bar\n\n" | aptinternalsolver > solver.result 2>&1; then |
7414af7f DK |
143 | cat solver.result |
144 | msgfail | |
145 | else | |
146 | msgpass | |
147 | fi | |
1f6cf9e7 | 148 | msgtest 'Test direct calling is okay for' 'apt-internal-solver' |
87d6947d | 149 | cat "$APT_EDSP_DUMP_FILENAME" | aptinternalsolver > solver.result 2>&1 || true |
1f6cf9e7 DK |
150 | if [ "$(tail -n2 solver.result | head -n1 )" = "Message: Done" ]; then |
151 | msgpass | |
152 | else | |
153 | cat solver.result | |
154 | msgfail | |
155 | fi | |
92b2e38d | 156 | rm -f "$APT_EDSP_DUMP_FILENAME" |
1f6cf9e7 | 157 | |
081c9d44 | 158 | testsuccess aptinternalsolver scenario |
25b86db1 | 159 | testsuccessequal 'Package: stuff |
081c9d44 DK |
160 | Source: stuff |
161 | Architecture: all | |
1dd20368 DK |
162 | Version: 3 |
163 | Source-Version: 3 | |
164 | APT-ID: 1 | |
165 | Priority: optional | |
166 | Section: other | |
167 | Multi-Arch: foreign | |
168 | APT-Release: | |
169 | a=experimental,n=experimental,c=main,b=all | |
170 | APT-Pin: 1 | |
171 | ||
172 | Package: stuff | |
173 | Source: stuff | |
174 | Architecture: all | |
175 | Version: 2 | |
176 | Source-Version: 2 | |
177 | APT-ID: 3 | |
178 | Priority: optional | |
179 | Section: other | |
180 | Multi-Arch: foreign | |
181 | APT-Release: | |
182 | a=unstable,n=sid,c=main,b=all | |
183 | APT-Pin: 500 | |
184 | APT-Candidate: yes | |
185 | ||
186 | Package: stuff | |
187 | Source: stuff | |
188 | Architecture: all | |
081c9d44 | 189 | Version: 1 |
eed4639e | 190 | Source-Version: 1 |
081c9d44 | 191 | Installed: yes |
1dd20368 | 192 | APT-ID: 8 |
081c9d44 DK |
193 | Priority: optional |
194 | Section: other | |
195 | APT-Pin: 100 | |
081c9d44 | 196 | ' aptinternalsolver scenario stuff |