1# Tests that package upgrade works properly
2
3body common control
4{
5      inputs => { "../default.cf.sub" };
6      bundlesequence => { "init", "test" };
7      version => "1.0";
8
9}
10
11bundle agent init
12{
13  methods:
14      "make filerepo" usebundle => file_make($(G.testfile),
15                                             "");
16}
17
18body package_method test_method_filerepo(currentdir)
19{
20      package_changes => "individual";
21      package_list_command => "$(G.cat) $(currentdir)/test_repository/installed.txt | $(G.grep) 'i '";
22      package_installed_regex => "i .*";
23      package_list_name_regex    => "^[ia] (\S+?)\s\S+?\s\S+$";
24      package_list_version_regex => "^[ia] \S+?\s(\S+?)\s\S+$";
25      package_list_arch_regex    => "^[ia] \S+?\s\S+?\s(\S+)$";
26
27      # Normally one would use $(G.echo), but it messes up redirection when you have arguments
28      # following the redirected filename on Windows, so use the stock "echo" in this case.
29      package_add_command    => "echo >>$(G.testfile) filerepo ADD";
30      package_update_command => "echo >>$(G.testfile) filerepo UPDATE";
31      package_delete_command => "echo >>$(G.testfile) filerepo DELETE";
32
33      package_file_repositories => { translatepath("$(currentdir)/test_repository") };
34      package_name_convention => "$(name)-$(version).$(arch).rpm";
35}
36
37bundle agent test
38{
39  vars:
40    "currentdir" string => translatepath("$(this.promise_dirname)");
41  packages:
42    "install-exact-version"
43      package_policy => "addupdate",
44      package_select => "==",
45      package_version => "2.2.3",
46      package_architectures => { "i386" },
47      package_method => test_method_filerepo($(currentdir));
48
49    "update-to-exact-version"
50      package_policy => "addupdate",
51      package_select => "==",
52      package_version => "2.2.3",
53      package_architectures => { "i386" },
54      package_method => test_method_filerepo($(currentdir));
55
56    "delete-exact-version"
57      package_policy => "delete",
58      package_select => "==",
59      package_version => "2.2.3",
60      package_architectures => { "i386" },
61      package_method => test_method_filerepo($(currentdir));
62
63    "install-lessorequal-version"
64      package_policy => "addupdate",
65      package_select => "<=",
66      package_version => "2.4.5",
67      package_architectures => { "i386" },
68      package_method => test_method_filerepo($(currentdir));
69
70    "update-to-lessorequal-version"
71      package_policy => "addupdate",
72      package_select => "<=",
73      package_version => "2.4.5",
74      package_architectures => { "i386" },
75      package_method => test_method_filerepo($(currentdir));
76
77    "install-lessthan-version"
78      package_policy => "addupdate",
79      package_select => "<",
80      package_version => "2.4.5",
81      package_architectures => { "i386" },
82      package_method => test_method_filerepo($(currentdir));
83
84    "update-to-lessthan-version"
85      package_policy => "addupdate",
86      package_select => "<",
87      package_version => "2.4.5",
88      package_architectures => { "i386" },
89      package_method => test_method_filerepo($(currentdir));
90
91    "install-greaterorequal-version"
92      package_policy => "addupdate",
93      package_select => ">=",
94      package_version => "2.0.1",
95      package_architectures => { "i386" },
96      package_method => test_method_filerepo($(currentdir));
97
98    "update-to-greaterorequal-version"
99      package_policy => "addupdate",
100      package_select => ">=",
101      package_version => "2.0.1",
102      package_architectures => { "i386" },
103      package_method => test_method_filerepo($(currentdir));
104
105    "update-to-greaterorequal-version-already-greater-installed"
106      package_policy => "addupdate",
107      package_select => ">=",
108      package_version => "2.0.1",
109      package_architectures => { "i386" },
110      package_method => test_method_filerepo($(currentdir));
111
112    "install-greaterthan-version"
113      package_policy => "addupdate",
114      package_select => ">",
115      package_version => "2.0.1",
116      package_architectures => { "i386" },
117      package_method => test_method_filerepo($(currentdir));
118
119    "update-to-greaterthan-version"
120      package_policy => "addupdate",
121      package_select => ">",
122      package_version => "2.0.1",
123      package_architectures => { "i386" },
124      package_method => test_method_filerepo($(currentdir));
125
126    "update-to-greaterthan-version-already-greater-installed"
127      package_policy => "addupdate",
128      package_select => ">",
129      package_version => "2.0.1",
130      package_architectures => { "i386" },
131      package_method => test_method_filerepo($(currentdir));
132
133    "mismatch-install-exact-version"
134      package_policy => "addupdate",
135      package_select => "==",
136      package_version => "2.1.3",
137      package_architectures => { "i386" },
138      package_method => test_method_filerepo($(currentdir));
139
140    "mismatch-update-to-exact-version"
141      package_policy => "addupdate",
142      package_select => "==",
143      package_version => "2.1.3",
144      package_architectures => { "i386" },
145      package_method => test_method_filerepo($(currentdir));
146
147    "mismatch-delete-exact-version"
148      package_policy => "delete",
149      package_select => "==",
150      package_version => "2.1.3",
151      package_architectures => { "i386" },
152      package_method => test_method_filerepo($(currentdir));
153
154    "mismatch-install-lessorequal-version"
155      package_policy => "addupdate",
156      package_select => "<=",
157      package_version => "2.1.5",
158      package_architectures => { "i386" },
159      package_method => test_method_filerepo($(currentdir));
160
161    "mismatch-update-to-lessorequal-version"
162      package_policy => "addupdate",
163      package_select => "<=",
164      package_version => "2.1.5",
165      package_architectures => { "i386" },
166      package_method => test_method_filerepo($(currentdir));
167
168    "mismatch-install-lessthan-version"
169      package_policy => "addupdate",
170      package_select => "<",
171      package_version => "2.1.5",
172      package_architectures => { "i386" },
173      package_method => test_method_filerepo($(currentdir));
174
175    "mismatch-update-to-lessthan-version"
176      package_policy => "addupdate",
177      package_select => "<",
178      package_version => "2.1.5",
179      package_architectures => { "i386" },
180      package_method => test_method_filerepo($(currentdir));
181
182    "mismatch-install-greaterorequal-version"
183      package_policy => "addupdate",
184      package_select => ">=",
185      package_version => "2.4.1",
186      package_architectures => { "i386" },
187      package_method => test_method_filerepo($(currentdir));
188
189    "mismatch-update-to-greaterorequal-version"
190      package_policy => "addupdate",
191      package_select => ">=",
192      package_version => "2.4.1",
193      package_architectures => { "i386" },
194      package_method => test_method_filerepo($(currentdir));
195
196    "mismatch-install-greaterthan-version"
197      package_policy => "addupdate",
198      package_select => ">",
199      package_version => "2.4.1",
200      package_architectures => { "i386" },
201      package_method => test_method_filerepo($(currentdir));
202
203    "mismatch-update-to-greaterthan-version"
204      package_policy => "addupdate",
205      package_select => ">",
206      package_version => "2.4.1",
207      package_architectures => { "i386" },
208      package_method => test_method_filerepo($(currentdir));
209
210    "missing-install-exact-version"
211      package_policy => "addupdate",
212      package_select => "==",
213      package_version => "2.2.3",
214      package_architectures => { "i386" },
215      package_method => test_method_filerepo($(currentdir));
216
217    "missing-update-to-exact-version"
218      package_policy => "addupdate",
219      package_select => "==",
220      package_version => "2.2.3",
221      package_architectures => { "i386" },
222      package_method => test_method_filerepo($(currentdir));
223
224    "missing-install-lessorequal-version"
225      package_policy => "addupdate",
226      package_select => "<=",
227      package_version => "2.4.5",
228      package_architectures => { "i386" },
229      package_method => test_method_filerepo($(currentdir));
230
231    "missing-update-to-lessorequal-version"
232      package_policy => "addupdate",
233      package_select => "<=",
234      package_version => "2.4.5",
235      package_architectures => { "i386" },
236      package_method => test_method_filerepo($(currentdir));
237
238    "missing-install-lessthan-version"
239      package_policy => "addupdate",
240      package_select => "<",
241      package_version => "2.4.5",
242      package_architectures => { "i386" },
243      package_method => test_method_filerepo($(currentdir));
244
245    "missing-update-to-lessthan-version"
246      package_policy => "addupdate",
247      package_select => "<",
248      package_version => "2.4.5",
249      package_architectures => { "i386" },
250      package_method => test_method_filerepo($(currentdir));
251
252    "missing-install-greaterorequal-version"
253      package_policy => "addupdate",
254      package_select => ">=",
255      package_version => "2.0.1",
256      package_architectures => { "i386" },
257      package_method => test_method_filerepo($(currentdir));
258
259    "missing-update-to-greaterorequal-version"
260      package_policy => "addupdate",
261      package_select => ">=",
262      package_version => "2.0.1",
263      package_architectures => { "i386" },
264      package_method => test_method_filerepo($(currentdir));
265
266    "missing-install-greaterthan-version"
267      package_policy => "addupdate",
268      package_select => ">",
269      package_version => "2.0.1",
270      package_architectures => { "i386" },
271      package_method => test_method_filerepo($(currentdir));
272
273    "missing-update-to-greaterthan-version"
274      package_policy => "addupdate",
275      package_select => ">",
276      package_version => "2.0.1",
277      package_architectures => { "i386" },
278      package_method => test_method_filerepo($(currentdir));
279}
280