msm: consistency for equally ranked keys
[platform/upstream/rpm.git] / tests / rpmdeps.at
1 #    rpmdeps.at: rpm dependency tests
2
3 AT_BANNER([RPM dependencies])
4
5 # ------------------------------
6
7 AT_SETUP([missing dependency])
8 AT_KEYWORDS([install])
9 AT_CHECK([
10 RPMDB_CLEAR
11 RPMDB_INIT
12 rm -rf "${TOPDIR}"
13
14 runroot rpmbuild --quiet -bb \
15         --define "pkg one" \
16         --define "reqs deptest-two" \
17           /data/SPECS/deptest.spec
18
19 runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm
20 ],
21 [1],
22 [],
23 [error: Failed dependencies:
24         deptest-two is needed by deptest-one-1.0-1.noarch
25 ])
26 AT_CLEANUP
27
28 # ------------------------------
29
30 AT_SETUP([cross-depending packages])
31 AT_KEYWORDS([install])
32 AT_CHECK([
33 RPMDB_CLEAR
34 RPMDB_INIT
35 rm -rf "${TOPDIR}"
36
37 runroot rpmbuild --quiet -bb \
38         --define "pkg one" \
39         --define "reqs deptest-two" \
40           /data/SPECS/deptest.spec
41
42 runroot rpmbuild --quiet -bb \
43         --define "pkg two" \
44         --define "reqs deptest-one" \
45           /data/SPECS/deptest.spec
46
47 runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
48 ],
49 [0],
50 [],
51 [])
52 AT_CLEANUP
53
54 # ------------------------------
55
56 AT_SETUP([unsatisfied versioned require])
57 AT_KEYWORDS([install])
58 AT_CHECK([
59 RPMDB_CLEAR
60 RPMDB_INIT
61 rm -rf "${TOPDIR}"
62
63 runroot rpmbuild --quiet -bb \
64         --define "pkg one" \
65         --define "reqs deptest-two >= 2.0" \
66           /data/SPECS/deptest.spec
67
68 runroot rpmbuild --quiet -bb \
69         --define "pkg two" \
70         --define "provs deptest-foo = 1.0" \
71           /data/SPECS/deptest.spec
72
73 runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
74 ],
75 [2],
76 [],
77 [error: Failed dependencies:
78         deptest-two >= 2.0 is needed by deptest-one-1.0-1.noarch
79 ])
80 AT_CLEANUP
81
82 # ------------------------------
83
84 AT_SETUP([satisfied versioned require])
85 AT_KEYWORDS([install])
86 AT_CHECK([
87 RPMDB_CLEAR
88 RPMDB_INIT
89 rm -rf "${TOPDIR}"
90
91 runroot rpmbuild --quiet -bb \
92         --define "pkg one" \
93         --define "reqs deptest-foo >= 2.0" \
94           /data/SPECS/deptest.spec
95
96 runroot rpmbuild --quiet -bb \
97         --define "pkg two" \
98         --define "provs deptest-foo = 2.0" \
99           /data/SPECS/deptest.spec
100
101 runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
102 ],
103 [0],
104 [],
105 [])
106 AT_CLEANUP
107
108 # ------------------------------
109
110 AT_SETUP([versioned conflict in transaction])
111 AT_KEYWORDS([install])
112 AT_CHECK([
113 RPMDB_CLEAR
114 RPMDB_INIT
115 rm -rf "${TOPDIR}"
116
117 runroot rpmbuild --quiet -bb \
118         --define "pkg one" \
119         --define "cfls deptest-two < 2.0" \
120           /data/SPECS/deptest.spec
121
122 runroot rpmbuild --quiet -bb \
123         --define "pkg two" \
124           /data/SPECS/deptest.spec
125
126 runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
127 ],
128 [2],
129 [],
130 [error: Failed dependencies:
131         deptest-two < 2.0 conflicts with deptest-one-1.0-1.noarch
132 ])
133 AT_CLEANUP
134
135 # ------------------------------
136
137 AT_SETUP([versioned conflict in database])
138 AT_KEYWORDS([install])
139 AT_CHECK([
140 RPMDB_CLEAR
141 RPMDB_INIT
142 rm -rf "${TOPDIR}"
143
144 runroot rpmbuild --quiet -bb \
145         --define "pkg one" \
146         --define "cfls deptest-two < 2.0" \
147           /data/SPECS/deptest.spec
148
149 runroot rpmbuild --quiet -bb \
150         --define "pkg two" \
151           /data/SPECS/deptest.spec
152
153 runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm
154 runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
155 ],
156 [1],
157 [],
158 [error: Failed dependencies:
159         deptest-two < 2.0 conflicts with (installed) deptest-one-1.0-1.noarch
160 ])
161 AT_CLEANUP
162 # ------------------------------
163
164 AT_SETUP([erase to break dependencies])
165 AT_KEYWORDS([install])
166 AT_CHECK([
167 RPMDB_CLEAR
168 RPMDB_INIT
169 rm -rf "${TOPDIR}"
170
171 runroot rpmbuild --quiet -bb \
172         --define "pkg one" \
173         --define "reqs deptest-foo >= 2.0" \
174           /data/SPECS/deptest.spec
175
176 runroot rpmbuild --quiet -bb \
177         --define "pkg two" \
178         --define "provs deptest-foo = 2.0" \
179           /data/SPECS/deptest.spec
180
181 runroot rpm -U "${TOPDIR}"/RPMS/noarch/deptest-one-1.0-1.noarch.rpm "${TOPDIR}"/RPMS/noarch/deptest-two-1.0-1.noarch.rpm
182 runroot rpm -e deptest-two
183 ],
184 [1],
185 [],
186 [error: Failed dependencies:
187         deptest-foo >= 2.0 is needed by (installed) deptest-one-1.0-1.noarch
188 ])
189 AT_CLEANUP
190
191 # ------------------------------
192 AT_SETUP([erase to break colored file dependency])
193 AT_KEYWORDS([install])
194 AT_CHECK([
195 RPMDB_CLEAR
196 RPMDB_INIT
197 rm -rf "${TOPDIR}"
198
199 runroot rpmbuild --quiet -bb \
200         --define "pkg hello" \
201         --define "reqs /usr/bin/hello" \
202           /data/SPECS/deptest.spec
203
204 runroot rpm -U --ignoreos --ignorearch --nodeps \
205         --define "_transaction_color 3" \
206         --define "_prefer_color 2" \
207         /data/RPMS/hello-2.0-1.i686.rpm \
208         /data/RPMS/hello-2.0-1.x86_64.rpm \
209         "${TOPDIR}"/RPMS/noarch/deptest-hello-1.0-1.noarch.rpm
210
211 runroot rpm -e hello.x86_64
212 ],
213 [1],
214 [],
215 [error: Failed dependencies:
216         /usr/bin/hello is needed by (installed) deptest-hello-1.0-1.noarch
217 ])
218 AT_CLEANUP
219
220 # ------------------------------
221 AT_SETUP([erase on wrong-colored file dependency])
222 AT_KEYWORDS([install])
223 AT_CHECK([
224 RPMDB_CLEAR
225 RPMDB_INIT
226 rm -rf "${TOPDIR}"
227
228 runroot rpmbuild --quiet -bb \
229         --define "pkg hello" \
230         --define "reqs /usr/bin/hello" \
231           /data/SPECS/deptest.spec
232
233 runroot rpm -U --ignoreos --ignorearch --nodeps \
234         --define "_transaction_color 3" \
235         --define "_prefer_color 2" \
236         /data/RPMS/hello-2.0-1.i686.rpm \
237         /data/RPMS/hello-2.0-1.x86_64.rpm \
238         "${TOPDIR}"/RPMS/noarch/deptest-hello-1.0-1.noarch.rpm
239
240 runroot rpm -e hello.i686
241 ],
242 [0],
243 [],
244 [])
245 AT_CLEANUP