Skip to content

Commit 3267e99

Browse files
committed
CP-45921: Add unittest
Signed-off-by: Lin Liu <[email protected]>
1 parent b2c50e2 commit 3267e99

File tree

2 files changed

+255
-0
lines changed

2 files changed

+255
-0
lines changed

ocaml/tests/suite_alcotest.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,5 @@ let () =
7171
@ Test_session.tests
7272
@ Test_xapi_cmd_result.tests
7373
@ Test_extauth_plugin_ADwinbind.tests
74+
@ Test_pkg_mgr.tests
7475
)

ocaml/tests/test_pkg_mgr.ml

Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
let format_cmd cmd_lines =
2+
let cmd, args = cmd_lines in
3+
Printf.sprintf "%s:%s" cmd (String.concat " " args)
4+
5+
let check exp ac () =
6+
let exp_str = format_cmd exp in
7+
let ac_str = ac |> format_cmd in
8+
let msg = Printf.sprintf "%s -- %s" exp_str ac_str in
9+
Alcotest.(check string) msg exp_str ac_str
10+
11+
let test_dnf_repo_query_installed =
12+
[
13+
( "<null>"
14+
, `Quick
15+
, check
16+
( !Xapi_globs.dnf_cmd
17+
, [
18+
"repoquery"
19+
; "-a"
20+
; "--qf"
21+
; "%{name}:|%{epoch}:|%{version}:|%{release}:|%{arch}:|%{repoid}"
22+
; "--installed"
23+
]
24+
)
25+
(Pkg_mgr.Dnf_cmd.repoquery_installed ())
26+
)
27+
]
28+
29+
let test_dnf_clean_all_cache =
30+
[
31+
( "<null>"
32+
, `Quick
33+
, check
34+
(!Xapi_globs.dnf_cmd, ["clean"; "all"])
35+
(Pkg_mgr.Dnf_cmd.clean_cache ~repo_name:"*")
36+
)
37+
]
38+
39+
let test_dnf_clean_repo_cache =
40+
[
41+
( "<null>"
42+
, `Quick
43+
, check
44+
( !Xapi_globs.dnf_cmd
45+
, ["--disablerepo=*"; "--enablerepo=test_repo"; "clean"; "all"]
46+
)
47+
(Pkg_mgr.Dnf_cmd.clean_cache ~repo_name:"test_repo")
48+
)
49+
]
50+
51+
let test_dnf_get_pkgs_from_updateinfo =
52+
let sub_command = "upgrades" in
53+
let repositories = ["testrepo1"; "testrepo2"] in
54+
[
55+
( "<null>"
56+
, `Quick
57+
, check
58+
( !Xapi_globs.dnf_cmd
59+
, [
60+
"-q"
61+
; "--disablerepo=*"
62+
; "--enablerepo=testrepo1,testrepo2"
63+
; "updateinfo"
64+
; "list"
65+
; "upgrades"
66+
]
67+
)
68+
(Pkg_mgr.Dnf_cmd.get_pkgs_from_updateinfo ~sub_command ~repositories)
69+
)
70+
]
71+
72+
let test_dnf_config_repo =
73+
let config = ["--setopt=testrepo.accesstoken=file:///some/path"] in
74+
[
75+
( "<null>"
76+
, `Quick
77+
, check
78+
( !Xapi_globs.dnf_cmd
79+
, [
80+
"config-manager"
81+
; "--setopt=testrepo.accesstoken=file:///some/path"
82+
; "testrepo"
83+
]
84+
)
85+
(Pkg_mgr.Dnf_cmd.config_repo ~repo_name:"testrepo" ~config)
86+
)
87+
]
88+
89+
let test_dnf_sync_repo =
90+
[
91+
( "<null>"
92+
, `Quick
93+
, check
94+
( !Xapi_globs.dnf_cmd
95+
, [
96+
"reposync"
97+
; "-p"
98+
; !Xapi_globs.local_pool_repo_dir
99+
; "--downloadcomps"
100+
; "--download-metadata"
101+
; "--delete"
102+
; "--newest-only"
103+
; "--repoid=testrepo"
104+
]
105+
)
106+
(Pkg_mgr.Dnf_cmd.sync_repo ~repo_name:"testrepo")
107+
)
108+
]
109+
110+
let test_dnf_apply_upgrades =
111+
[
112+
( "<null>"
113+
, `Quick
114+
, check
115+
( !Xapi_globs.dnf_cmd
116+
, [
117+
"-y"
118+
; "--disablerepo=*"
119+
; "--enablerepo=testrepo1,testrepo2"
120+
; "upgrade"
121+
]
122+
)
123+
(Pkg_mgr.Dnf_cmd.apply_upgrade ~repositories:["testrepo1"; "testrepo2"])
124+
)
125+
]
126+
127+
let test_yum_repo_query_installed =
128+
[
129+
( "<null>"
130+
, `Quick
131+
, check
132+
( !Xapi_globs.repoquery_cmd
133+
, [
134+
"-a"
135+
; "--pkgnarrow=installed"
136+
; "--qf"
137+
; "%{name}:|%{epoch}:|%{version}:|%{release}:|%{arch}:|%{repoid}"
138+
]
139+
)
140+
(Pkg_mgr.Yum_cmd.repoquery_installed ())
141+
)
142+
]
143+
144+
let test_yum_clean_all_cache =
145+
[
146+
( "<null>"
147+
, `Quick
148+
, check
149+
(!Xapi_globs.yum_cmd, ["clean"; "all"])
150+
(Pkg_mgr.Yum_cmd.clean_cache ~repo_name:"*")
151+
)
152+
]
153+
154+
let test_yum_clean_repo_cache =
155+
[
156+
( "<null>"
157+
, `Quick
158+
, check
159+
( !Xapi_globs.yum_cmd
160+
, ["--disablerepo=*"; "--enablerepo=test_repo"; "clean"; "all"]
161+
)
162+
(Pkg_mgr.Yum_cmd.clean_cache ~repo_name:"test_repo")
163+
)
164+
]
165+
166+
let test_yum_get_pkgs_from_updateinfo =
167+
let sub_command = "updates" in
168+
let repositories = ["testrepo1"; "testrepo2"] in
169+
[
170+
( "<null>"
171+
, `Quick
172+
, check
173+
( !Xapi_globs.yum_cmd
174+
, [
175+
"-q"
176+
; "--disablerepo=*"
177+
; "--enablerepo=testrepo1,testrepo2"
178+
; "updateinfo"
179+
; "list"
180+
; "updates"
181+
]
182+
)
183+
(Pkg_mgr.Yum_cmd.get_pkgs_from_updateinfo ~sub_command ~repositories)
184+
)
185+
]
186+
187+
let test_yum_config_repo =
188+
let config = ["--setopt=testrepo.accesstoken=file:///some/path"] in
189+
[
190+
( "<null>"
191+
, `Quick
192+
, check
193+
( !Xapi_globs.yum_config_manager_cmd
194+
, ["--setopt=testrepo.accesstoken=file:///some/path"; "testrepo"]
195+
)
196+
(Pkg_mgr.Yum_cmd.config_repo ~repo_name:"testrepo" ~config)
197+
)
198+
]
199+
200+
let test_yum_sync_repo =
201+
[
202+
( "<null>"
203+
, `Quick
204+
, check
205+
( !Xapi_globs.reposync_cmd
206+
, [
207+
"-p"
208+
; !Xapi_globs.local_pool_repo_dir
209+
; "--downloadcomps"
210+
; "--download-metadata"
211+
; "--delete"
212+
; "--newest-only"
213+
; "--repoid=testrepo"
214+
; "--plugins"
215+
]
216+
)
217+
(Pkg_mgr.Yum_cmd.sync_repo ~repo_name:"testrepo")
218+
)
219+
]
220+
221+
let test_yum_apply_upgrades =
222+
[
223+
( "<null>"
224+
, `Quick
225+
, check
226+
( !Xapi_globs.yum_cmd
227+
, [
228+
"-y"
229+
; "--disablerepo=*"
230+
; "--enablerepo=testrepo1,testrepo2"
231+
; "upgrade"
232+
]
233+
)
234+
(Pkg_mgr.Yum_cmd.apply_upgrade ~repositories:["testrepo1"; "testrepo2"])
235+
)
236+
]
237+
238+
let tests =
239+
[
240+
("test_dnf_repo_query_installed", test_dnf_repo_query_installed)
241+
; ("test_dnf_clean_all_cache", test_dnf_clean_all_cache)
242+
; ("test_dnf_clean_repo_cache", test_dnf_clean_repo_cache)
243+
; ("test_dnf_get_pkgs_from_updateinfo", test_dnf_get_pkgs_from_updateinfo)
244+
; ("test_dnf_cofig_repo", test_dnf_config_repo)
245+
; ("test_dnf_sync_repo", test_dnf_sync_repo)
246+
; ("test_dnf_apply_upgrades", test_dnf_apply_upgrades)
247+
; ("test_yum_repo_query_installed", test_yum_repo_query_installed)
248+
; ("test_yum_clean_all_cache", test_yum_clean_all_cache)
249+
; ("test_yum_clean_repo_cache", test_yum_clean_repo_cache)
250+
; ("test_yum_get_pkgs_from_updateinfo", test_yum_get_pkgs_from_updateinfo)
251+
; ("test_yum_cofig_repo", test_yum_config_repo)
252+
; ("test_yum_sync_repo", test_yum_sync_repo)
253+
; ("test_yum_apply_upgrades", test_yum_apply_upgrades)
254+
]

0 commit comments

Comments
 (0)