@@ -52,6 +52,28 @@ cyclic_dep_vpkg2_body() {
5252 -- xbps-install -r root --repository=$PWD /some_repo -ny C
5353}
5454
55+ atf_test_case cyclic_dep_vpkg3
56+
57+ cyclic_dep_vpkg3_head () {
58+ atf_set " descr" " Tests for cyclic deps: unresolvable circular dependencies"
59+ }
60+
61+ cyclic_dep_vpkg3_body () {
62+ mkdir -p some_repo pkg_A/usr/bin pkg_B/usr/bin pkg_C/usr/bin pkg_D/usr/bin
63+
64+ cd some_repo
65+ atf_check -o ignore -- xbps-create -A noarch -n A-1.0_1 -s " A pkg" --provides " libGL-7.11_1" --dependencies " xserver-abi-video<20" ../pkg_A
66+ atf_check -o ignore -- xbps-create -A noarch -n B-1.0_1 -s " B pkg" --dependencies " libGL>=7.11" --provides " xserver-abi-video-21_1" ../pkg_B
67+ atf_check -o ignore -- xbps-create -A noarch -n C-1.0_1 -s " C pkg" --dependencies " libGL>=7.11" ../pkg_C
68+ atf_check -o ignore -e ignore -- xbps-rindex -d -a $PWD /* .xbps
69+ cd ..
70+
71+ atf_check \
72+ -s exit:19 \
73+ -e match:" MISSING: xserver-abi-video<20" \
74+ -- xbps-install -r root --repository=$PWD /some_repo -ny C
75+ }
76+
5577atf_test_case cyclic_dep_full
5678
5779cyclic_dep_full_head () {
@@ -79,8 +101,183 @@ cyclic_dep_full_body() {
79101 atf_check_equal $? 0
80102}
81103
104+
105+ atf_test_case cyclic_dep_of_dep
106+
107+ cyclic_dep_of_dep_head () {
108+ atf_set " descr" " Tests for cyclic deps: installing cylic deps directly and indirectly"
109+ }
110+
111+ cyclic_dep_of_dep_body () {
112+ mkdir repo pkg
113+
114+ cd repo
115+ atf_check -o ignore -- xbps-create -A noarch -n base-system-1.0_1 -s " base-system" --dependencies " systemd>=0" ../pkg
116+ atf_check -o ignore -- xbps-create -A noarch -n systemd-1.0_1 -s " systemd" --dependencies " systemd-libudev>=0 systemd-analyze>=0" ../pkg
117+ atf_check -o ignore -- xbps-create -A noarch -n systemd-libudev-1.0_1 -s " systemd-libudev" ../pkg
118+ atf_check -o ignore -- xbps-create -A noarch -n systemd-analyze-1.0_1 -s " systemd-analyze" --dependencies " systemd>=1.0_1" ../pkg
119+ atf_check -o ignore -e ignore -- xbps-rindex -a * .xbps
120+ cd ..
121+
122+ atf_check \
123+ -o match:" systemd-libudev-1\.0_1 install" \
124+ -o match:" systemd-analyze-1\.0_1 install" \
125+ -o match:" systemd-1\.0_1 install" \
126+ -- xbps-install -r root -R repo -n systemd
127+
128+ atf_check \
129+ -o match:" base-system-1\.0_1 install" \
130+ -o match:" systemd-libudev-1\.0_1 install" \
131+ -o match:" systemd-analyze-1\.0_1 install" \
132+ -o match:" systemd-1\.0_1 install" \
133+ -- xbps-install -r root -R repo -n base-system
134+ }
135+
136+ atf_test_case cyclic_dep_update
137+
138+ cyclic_dep_update_head () {
139+ atf_set " descr" " Tests for cyclic deps: test cylic deps during updates"
140+ }
141+
142+ cyclic_dep_update_body () {
143+ mkdir repo pkg
144+
145+ cd repo
146+ atf_check -o ignore -- xbps-create -A noarch -n base-system-1.0_1 -s " base-system" --dependencies " systemd>=0" ../pkg
147+ atf_check -o ignore -- xbps-create -A noarch -n systemd-1.0_1 -s " systemd" ../pkg
148+ atf_check -o ignore -e ignore -- xbps-rindex -a * .xbps
149+ cd ..
150+
151+ atf_check \
152+ -o match:" systemd-1\.0_1: installed successfully" \
153+ -o match:" base-system-1\.0_1: installed successfully" \
154+ -- xbps-install -r root -R repo -y base-system
155+
156+ cd repo
157+ atf_check -o ignore -- xbps-create -A noarch -n base-system-2.0_1 -s " base-system" --dependencies " systemd>=0" ../pkg
158+ atf_check -o ignore -- xbps-create -A noarch -n systemd-2.0_1 -s " systemd" --dependencies " systemd-libudev>=0 systemd-analyze>=0" ../pkg
159+ atf_check -o ignore -- xbps-create -A noarch -n systemd-libudev-2.0_1 -s " systemd-libudev" ../pkg
160+ atf_check -o ignore -- xbps-create -A noarch -n systemd-analyze-2.0_1 -s " systemd-analyze" --dependencies " systemd>=2.0_1" ../pkg
161+ atf_check -o ignore -e ignore -- xbps-rindex -a * .xbps
162+ cd ..
163+
164+ atf_check \
165+ -o match:" base-system-2\.0_1 update" \
166+ -- xbps-install -r root -R repo -n -u base-system
167+
168+ atf_check \
169+ -o match:" systemd-libudev-2\.0_1 install" \
170+ -o match:" systemd-analyze-2\.0_1 install" \
171+ -o match:" systemd-2\.0_1 update" \
172+ -- xbps-install -r root -R repo -n -u systemd
173+ # XXX: xbps automatically updates revdeps...
174+ # -o not-match:"base-system-2\.0_1 update"
175+
176+ atf_check \
177+ -o match:" base-system-2\.0_1 update" \
178+ -o match:" systemd-libudev-2\.0_1 install" \
179+ -o match:" systemd-analyze-2\.0_1 install" \
180+ -o match:" systemd-2\.0_1 update" \
181+ -- xbps-install -r root -R repo -n -u
182+
183+ cd repo
184+ atf_check -o ignore -- xbps-create -A noarch -n base-system-3.0_1 -s " base-system" --dependencies " systemd>=2" ../pkg
185+ atf_check -o ignore -e ignore -- xbps-rindex -a * .xbps
186+ cd ..
187+
188+ atf_check \
189+ -o match:" base-system-3\.0_1 update" \
190+ -o match:" systemd-libudev-2\.0_1 install" \
191+ -o match:" systemd-analyze-2\.0_1 install" \
192+ -o match:" systemd-2\.0_1 update" \
193+ -- xbps-install -r root -R repo -n -u base-system
194+
195+ atf_check \
196+ -o match:" systemd-libudev-2\.0_1 install" \
197+ -o match:" systemd-analyze-2\.0_1 install" \
198+ -o match:" systemd-2\.0_1 update" \
199+ -- xbps-install -r root -R repo -n -u systemd
200+ # XXX: xbps automatically updates revdeps...
201+ # -o not-match:"base-system-3\.0_1 update"
202+
203+ atf_check \
204+ -o match:" base-system-3\.0_1 update" \
205+ -o match:" systemd-libudev-2\.0_1 install" \
206+ -o match:" systemd-analyze-2\.0_1 install" \
207+ -o match:" systemd-2\.0_1 update" \
208+ -- xbps-install -r root -R repo -n -u
209+ }
210+
211+ atf_test_case cyclic_dep_nested
212+
213+ cyclic_dep_nested_head () {
214+ atf_set " descr" " Tests for cyclic deps: nested cyclic deps"
215+ }
216+
217+ cyclic_dep_nested_body () {
218+ mkdir -p repo pkg
219+
220+ cd repo
221+ atf_check -o ignore -- xbps-create -A noarch -n A-1.0_1 -s " A pkg" --dependencies " B>=1" ../pkg
222+ atf_check -o ignore -- xbps-create -A noarch -n B-1.0_1 -s " B pkg" --dependencies " C>=1" ../pkg
223+ atf_check -o ignore -- xbps-create -A noarch -n C-1.0_1 -s " C pkg" --dependencies " A>=1" ../pkg
224+ atf_check -o ignore -- xbps-create -A noarch -n D-1.0_1 -s " D pkg" --dependencies " E>=1" ../pkg
225+ atf_check -o ignore -- xbps-create -A noarch -n E-1.0_1 -s " E pkg" --dependencies " A>=1 D>=1" ../pkg
226+ atf_check -o ignore -- xbps-create -A noarch -n F-1.0_1 -s " F pkg" --dependencies " E>=1" ../pkg
227+ atf_check -o ignore -e ignore -- xbps-rindex -d -a $PWD /* .xbps
228+ cd ..
229+
230+ atf_check \
231+ -o match:" A-1\.0_1 install" \
232+ -o match:" B-1\.0_1 install" \
233+ -o match:" C-1\.0_1 install" \
234+ -- xbps-install -r root -R repo -n -u A
235+ atf_check \
236+ -o match:" C-1\.0_1 install" \
237+ -o match:" B-1\.0_1 install" \
238+ -o match:" A-1\.0_1 install" \
239+ -o match:" E-1\.0_1 install" \
240+ -o match:" D-1\.0_1 install" \
241+ -- xbps-install -r root -R repo -n -u D
242+ atf_check \
243+ -o match:" C-1\.0_1 install" \
244+ -o match:" B-1\.0_1 install" \
245+ -o match:" A-1\.0_1 install" \
246+ -o match:" E-1\.0_1 install" \
247+ -o match:" D-1\.0_1 install" \
248+ -o match:" F-1\.0_1 install" \
249+ -- xbps-install -r root -R repo -n -u F
250+ }
251+
252+ atf_test_case cyclic_dep_incompatible
253+
254+ cyclic_dep_incompatible_head () {
255+ atf_set " descr" " Tests for cyclic deps: incompatible cyclic dep"
256+ }
257+
258+ cyclic_dep_incompatible_body () {
259+ mkdir -p repo pkg
260+
261+ cd repo
262+ atf_check -o ignore -- xbps-create -A noarch -n A-1.0_1 -s " A pkg" --dependencies " B>=1" ../pkg
263+ atf_check -o ignore -- xbps-create -A noarch -n B-1.0_1 -s " B pkg" --dependencies " C>=1" ../pkg
264+ atf_check -o ignore -- xbps-create -A noarch -n C-1.0_1 -s " C pkg" --dependencies " A>=2" ../pkg
265+ atf_check -o ignore -e ignore -- xbps-rindex -d -a $PWD /* .xbps
266+ cd ..
267+
268+ atf_check \
269+ -s exit:19 \
270+ -e match:" MISSING: A>=2" \
271+ -- xbps-install -r root -R repo -n -u A
272+ }
273+
82274atf_init_test_cases () {
83275 atf_add_test_case cyclic_dep_vpkg
84276 atf_add_test_case cyclic_dep_vpkg2
277+ atf_add_test_case cyclic_dep_vpkg3
85278 atf_add_test_case cyclic_dep_full
279+ atf_add_test_case cyclic_dep_of_dep
280+ atf_add_test_case cyclic_dep_update
281+ atf_add_test_case cyclic_dep_nested
282+ atf_add_test_case cyclic_dep_incompatible
86283}
0 commit comments