/ tests / frontend / updating.sh
updating.sh
  1  #! /usr/bin/env atf-sh
  2  
  3  . $(atf_get_srcdir)/test_environment.sh
  4  
  5  tests_init \
  6  	updating_all_users \
  7          updating_pkg \
  8  	updating_perl \
  9  	updating_samba \
 10          updating_ilmbase \
 11          updating_mysql \
 12          updating_postgresql \
 13          updating_cupsbase \
 14          updating_cups \
 15  	updating_user_glob \
 16  
 17  updating_all_users_body() {
 18  	cat > UPDATING <<EOF
 19  20190624:
 20    AFFECTS: all users
 21    AUTHOR: ports@FreeBSD.org
 22  
 23    Messages...
 24  20190625:
 25    AFFECTS: all ports users
 26    AUTHOR: ports@FreeBSD.org
 27  
 28    Messages...
 29  EOF
 30  
 31  	atf_check \
 32  		-o match:"^20190624:$" \
 33  		-o match:"^20190625:$" \
 34  		pkg updating -f UPDATING
 35  }
 36  
 37  updating_pkg_body() {
 38  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg pkg 1.10.5 /usr/local
 39  	cat >> pkg.ucl << EOF
 40  message: [
 41  	{ message: "Always print" }
 42  ]
 43  EOF
 44  	atf_check \
 45  		-o match:".*Installing.*" \
 46  		pkg register -M pkg.ucl
 47  
 48  	cat > UPDATING <<EOF
 49  20190619:
 50    AFFECTS: pkg
 51    AUTHOR: ports@FreeBSD.org
 52  
 53    Messages...
 54  EOF
 55  
 56  	atf_check \
 57  		-o match:"^20190619:$" \
 58  		pkg updating -f UPDATING
 59  }
 60  
 61  updating_perl_body() {
 62  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg perl perl5.26 5.26 /usr/local
 63  	cat >> perl.ucl << EOF
 64  message: [
 65  	{ message: "Always print" }
 66  ]
 67  EOF
 68  	atf_check \
 69  		-o match:".*Installing.*" \
 70  		pkg register -M perl.ucl
 71  
 72  	cat > UPDATING <<EOF
 73  20190620:
 74    AFFECTS: perl5.*
 75    AUTHOR: ports@FreeBSD.org
 76  
 77    Messages...
 78  
 79  20190621:
 80    AFFECTS: perl5*
 81    AUTHOR: ports@FreeBSD.org
 82  
 83    Messages...
 84  EOF
 85  
 86  	atf_check \
 87  		-o match:"^20190620:$" \
 88  		-o match:"^20190621:$" \
 89  		pkg updating -f UPDATING
 90  }
 91  
 92  updating_samba_body() {
 93  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg samba samba47 4.7.12 /usr/local
 94  	cat >> samba.ucl << EOF
 95  message: [
 96  	{ message: "Always print" }
 97  ]
 98  EOF
 99  	atf_check \
100  		-o match:".*Installing.*" \
101  		pkg register -M samba.ucl
102  
103  	cat > UPDATING <<EOF
104  20190622:
105    AFFECTS: samba4[678]
106    AUTHOR: ports@FreeBSD.org
107  
108    Messages...
109  EOF
110  
111  	atf_check \
112  		-o match:"^20190622:$" \
113  		pkg updating -f UPDATING
114  }
115  
116  updating_ilmbase_body() {
117  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg ilmbase ilmbase 2.3.0_2 /usr/local
118  	cat >> ilmbase.ucl << EOF
119  message: [
120  	{ message: "Always print" }
121  ]
122  EOF
123  	atf_check \
124  		-o match:".*Installing.*" \
125  		pkg register -M ilmbase.ucl
126  
127  	cat > UPDATING <<EOF
128  20190623:
129    AFFECTS: users of ilmbase, graphics/OpenEXR
130    AUTHOR: ports@FreeBSD.org
131  
132    Messages...
133  EOF
134  
135  	atf_check \
136  		-o match:"^20190623:$" \
137  		pkg updating -f UPDATING
138  }
139  
140  updating_mysql_body() {
141  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg mysql mysql55-server 5.5.62_1 /usr/local
142  	cat >> mysql.ucl << EOF
143  message: [
144  	{ message: "Always print" }
145  ]
146  EOF
147  	atf_check \
148  		-o match:".*Installing.*" \
149  		pkg register -M mysql.ucl
150  
151  	cat > UPDATING <<EOF
152  20190626:
153    AFFECTS: users of mysql55-(server|client)
154    AUTHOR: ports@FreeBSD.org
155  
156    Messages...
157  EOF
158  
159  	atf_check \
160  		-o match:"^20190626:$" \
161  		pkg updating -f UPDATING
162  }
163  
164  updating_postgresql_body() {
165  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg postgresql postgresql95-server 9.5.17 /usr/local
166  	cat >> postgresql.ucl << EOF
167  message: [
168  	{ message: "Always print" }
169  ]
170  EOF
171  	atf_check \
172  		-o match:".*Installing.*" \
173  		pkg register -M postgresql.ucl
174  
175  	cat > UPDATING <<EOF
176  20190627:
177    AFFECTS: users of postgresql??-(server|client)
178    AUTHOR: ports@FreeBSD.org
179  
180    Messages...
181  EOF
182  
183  	atf_check \
184  		-o match:"^20190627:$" \
185  		pkg updating -f UPDATING
186  }
187  
188  updating_cupsbase_body() {
189  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg cups-base cups-base 2.2.1 /usr/local
190  	cat >> cups-base.ucl << EOF
191  message: [
192  	{ message: "Always print" }
193  ]
194  EOF
195  	atf_check \
196  		-o match:".*Installing.*" \
197  		pkg register -M cups-base.ucl
198  
199  	cat > UPDATING <<EOF
200  20190628:
201    AFFECTS: users of cups-{base,client,image}
202    AUTHOR: ports@FreeBSD.org
203  
204    Messages...
205  EOF
206  
207  	atf_check \
208  		-o match:"^20190628:$" \
209  		pkg updating -f UPDATING
210  }
211  
212  updating_cups_body() {
213  	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg cups cups 2.2.1 /usr/local
214  	cat >> cups.ucl << EOF
215  message: [
216  	{ message: "Always print" }
217  ]
218  EOF
219  	atf_check \
220  		-o match:".*Installing.*" \
221  		pkg register -M cups.ucl
222  
223  	cat > UPDATING <<EOF
224  20190628:
225    AFFECTS: users of cups-{base,client,image}
226    AUTHOR: ports@FreeBSD.org
227  
228    Messages...
229  EOF
230  
231  	atf_check \
232  		-o empty \
233  		-e empty \
234  		pkg updating -f UPDATING
235  }
236  
237  updating_user_glob_body() {
238  	cat > UPDATING <<EOF
239  20190630:
240    AFFECTS: users of lang/php74-imagick
241    AUTHOR: ports@FreeBSD.org
242  
243    Messages about php74-imagick...
244  
245  20190631:
246    AFFECTS: users of databases/py-sqlite3
247    AUTHOR: ports@FreeBSD.org
248  
249    Messages about py-sqlite3...
250  
251  20190632:
252    AFFECTS: users of net/samba413
253    AUTHOR: ports@FreeBSD.org
254  
255    Messages about samba413...
256  EOF
257  
258  	# User-provided glob should match exact AFFECTS entries
259  	atf_check \
260  		-o match:"^20190630:$" \
261  		pkg updating -f UPDATING lang/php74*
262  
263  	atf_check \
264  		-o match:"^20190631:$" \
265  		pkg updating -f UPDATING 'databases/py-*'
266  
267  	# User glob should not match unrelated entries
268  	atf_check \
269  		-o empty \
270  		-e empty \
271  		pkg updating -f UPDATING 'www/apache*'
272  
273  	# User glob with ? wildcard
274  	atf_check \
275  		-o match:"^20190632:$" \
276  		pkg updating -f UPDATING 'net/samba4??'
277  }