Skip to content

Commit e3021d1

Browse files
committed
tests: add more cyclic dep tests
1 parent e02fc4c commit e3021d1

1 file changed

Lines changed: 197 additions & 0 deletions

File tree

tests/xbps/libxbps/shell/cyclic_deps_test.sh

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
5577
atf_test_case cyclic_dep_full
5678

5779
cyclic_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+
82274
atf_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

Comments
 (0)