Fix Werrors with GCC-14.1.0
[platform/upstream/rpm.git] / tests / rpmreplace.at
1
2 AT_BANNER([RPM file replacement])
3
4 AT_SETUP([upgrade to/from regular file])
5 AT_KEYWORDS([install])
6 AT_CHECK([
7 RPMDB_CLEAR
8 RPMDB_INIT
9 tf="${RPMTEST}"/opt/foo
10 rm -rf "${tf}" "${tf}".rpm*
11 rm -rf "${TOPDIR}"
12
13 runroot rpmbuild --quiet -bb \
14         --define "ver 1.0" \
15         --define "filetype file" \
16         --define "filedata foo" \
17           /data/SPECS/replacetest.spec
18
19 runroot rpmbuild --quiet -bb \
20         --define "ver 2.0" \
21         --define "filetype file" \
22         --define "filedata bar" \
23           /data/SPECS/replacetest.spec
24
25 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
26 cat "${tf}"
27 runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
28 cat "${tf}"
29 runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
30 cat "${tf}"
31 ],
32 [0],
33 [foo
34 bar
35 foo
36 ],
37 [])
38 AT_CLEANUP
39
40 AT_SETUP([upgrade regular file to/from broken link])
41 AT_KEYWORDS([install])
42 AT_CHECK([
43 RPMDB_CLEAR
44 RPMDB_INIT
45 tf="${RPMTEST}"/opt/foo
46 rm -rf "${RPMTEST}"/opt/*
47 rm -rf "${TOPDIR}"
48
49 runroot rpmbuild --quiet -bb \
50         --define "ver 1.0" \
51         --define "filetype file" \
52         --define "filedata foo" \
53           /data/SPECS/replacetest.spec
54
55 runroot rpmbuild --quiet -bb \
56         --define "ver 2.0" \
57         --define "filetype link" \
58         --define "filedata stuff" \
59           /data/SPECS/replacetest.spec
60
61 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
62 cat "${tf}"
63 runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
64 readlink "${tf}"
65 runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
66 cat "${tf}"
67 ],
68 [0],
69 [foo
70 stuff
71 foo
72 ],
73 [])
74 AT_CLEANUP
75
76 AT_SETUP([upgrade regular file to/from file link])
77 AT_KEYWORDS([install])
78 AT_CHECK([
79 RPMDB_CLEAR
80 RPMDB_INIT
81 tf="${RPMTEST}"/opt/foo
82 rm -rf "${RPMTEST}"/opt/*
83 rm -rf "${TOPDIR}"
84
85 runroot rpmbuild --quiet -bb \
86         --define "ver 1.0" \
87         --define "filetype file" \
88         --define "filedata foo" \
89           /data/SPECS/replacetest.spec
90
91 runroot rpmbuild --quiet -bb \
92         --define "ver 2.0" \
93         --define "filetype link" \
94         --define "filedata goo" \
95           /data/SPECS/replacetest.spec
96
97 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
98 cat "${tf}"
99 runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
100 readlink "${tf}"
101 runroot rpm -U --oldpackage /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
102 cat "${tf}"
103 ],
104 [0],
105 [foo
106 goo
107 foo
108 ],
109 [])
110 AT_CLEANUP
111
112 AT_SETUP([upgrade broken link to broken link])
113 AT_KEYWORDS([install])
114 AT_CHECK([
115 RPMDB_CLEAR
116 RPMDB_INIT
117 tf="${RPMTEST}"/opt/foo
118 rm -rf "${RPMTEST}"/opt/*
119 rm -rf "${TOPDIR}"
120
121 runroot rpmbuild --quiet -bb \
122         --define "ver 1.0" \
123         --define "filetype link" \
124         --define "filedata stiff" \
125           /data/SPECS/replacetest.spec
126
127 runroot rpmbuild --quiet -bb \
128         --define "ver 2.0" \
129         --define "filetype link" \
130         --define "filedata stuff" \
131           /data/SPECS/replacetest.spec
132
133 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
134 readlink "${tf}"
135 runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
136 readlink "${tf}"
137 ],
138 [0],
139 [stiff
140 stuff
141 ],
142 [])
143 AT_CLEANUP
144
145 AT_SETUP([upgrade file link to file link])
146 AT_KEYWORDS([install])
147 AT_CHECK([
148 RPMDB_CLEAR
149 RPMDB_INIT
150 tf="${RPMTEST}"/opt/foo
151 rm -rf "${RPMTEST}"/opt/*
152 rm -rf "${TOPDIR}"
153
154 runroot rpmbuild --quiet -bb \
155         --define "ver 1.0" \
156         --define "filetype link" \
157         --define "filedata goo" \
158           /data/SPECS/replacetest.spec
159
160 runroot rpmbuild --quiet -bb \
161         --define "ver 2.0" \
162         --define "filetype link" \
163         --define "filedata goo" \
164           /data/SPECS/replacetest.spec
165
166 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
167 readlink "${tf}"
168 runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
169 readlink "${tf}"
170 ],
171 [0],
172 [goo
173 goo
174 ],
175 [])
176 AT_CLEANUP
177
178 AT_SETUP([upgrade directory link to directory link])
179 AT_KEYWORDS([install])
180 AT_CHECK([
181 RPMDB_CLEAR
182 RPMDB_INIT
183 tf="${RPMTEST}"/opt/foo
184 rm -rf "${RPMTEST}"/opt/*
185 rm -rf "${TOPDIR}"
186
187 runroot rpmbuild --quiet -bb \
188         --define "ver 1.0" \
189         --define "filetype link" \
190         --define "filedata zoo" \
191           /data/SPECS/replacetest.spec
192
193 runroot rpmbuild --quiet -bb \
194         --define "ver 2.0" \
195         --define "filetype link" \
196         --define "filedata zoo" \
197           /data/SPECS/replacetest.spec
198
199 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
200 readlink "${tf}"
201 runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
202 readlink "${tf}"
203 ],
204 [0],
205 [zoo
206 zoo
207 ],
208 [])
209 AT_CLEANUP
210
211 AT_SETUP([upgrade regular file to directory])
212 AT_KEYWORDS([install])
213 AT_CHECK([
214 RPMDB_CLEAR
215 RPMDB_INIT
216 tf="${RPMTEST}"/opt/foo
217 rm -rf "${RPMTEST}"/opt/*
218 rm -rf "${TOPDIR}"
219
220 runroot rpmbuild --quiet -bb \
221         --define "ver 1.0" \
222         --define "filetype file" \
223         --define "filedata foo" \
224           /data/SPECS/replacetest.spec
225
226 runroot rpmbuild --quiet -bb \
227         --define "ver 2.0" \
228         --define "filetype dir" \
229           /data/SPECS/replacetest.spec
230
231 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
232 cat "${tf}"
233 runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
234 test -d "${tf}"
235 ],
236 [0],
237 [foo
238 ],
239 [])
240 AT_CLEANUP
241
242 AT_SETUP([upgrade broken link to directory])
243 AT_KEYWORDS([install])
244 AT_CHECK([
245 RPMDB_CLEAR
246 RPMDB_INIT
247 tf="${RPMTEST}"/opt/foo
248 rm -rf "${RPMTEST}"/opt/*
249 rm -rf "${TOPDIR}"
250
251 runroot rpmbuild --quiet -bb \
252         --define "ver 1.0" \
253         --define "filetype link" \
254         --define "filedata other" \
255           /data/SPECS/replacetest.spec
256
257 runroot rpmbuild --quiet -bb \
258         --define "ver 2.0" \
259         --define "filetype dir" \
260           /data/SPECS/replacetest.spec
261
262 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
263 readlink "${tf}"
264 runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
265 test -d "${tf}"
266 ],
267 [0],
268 [other
269 ],
270 [])
271 AT_CLEANUP
272
273 AT_SETUP([upgrade file link to directory])
274 AT_KEYWORDS([install])
275 AT_CHECK([
276 RPMDB_CLEAR
277 RPMDB_INIT
278 tf="${RPMTEST}"/opt/foo
279 rm -rf "${RPMTEST}"/opt/*
280 rm -rf "${TOPDIR}"
281
282 runroot rpmbuild --quiet -bb \
283         --define "ver 1.0" \
284         --define "filetype link" \
285         --define "filedata goo" \
286           /data/SPECS/replacetest.spec
287
288 runroot rpmbuild --quiet -bb \
289         --define "ver 2.0" \
290         --define "filetype dir" \
291           /data/SPECS/replacetest.spec
292
293 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
294 readlink "${tf}"
295 runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
296 test -d "${tf}"
297 ],
298 [0],
299 [goo
300 ],
301 [])
302 AT_CLEANUP
303
304 AT_SETUP([upgrade directory link to directory])
305 AT_KEYWORDS([install])
306 AT_CHECK([
307 RPMDB_CLEAR
308 RPMDB_INIT
309 tf="${RPMTEST}"/opt/foo
310 rm -rf "${RPMTEST}"/opt/*
311 rm -rf "${TOPDIR}"
312
313 runroot rpmbuild --quiet -bb \
314         --define "ver 1.0" \
315         --define "filetype link" \
316         --define "filedata zoo" \
317           /data/SPECS/replacetest.spec
318
319 runroot rpmbuild --quiet -bb \
320         --define "ver 2.0" \
321         --define "filetype dir" \
322           /data/SPECS/replacetest.spec
323
324 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
325 readlink "${tf}"
326 runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
327 ],
328 [2],
329 [zoo
330 ],
331 [       file /opt/foo from install of replacetest-2.0-1.noarch conflicts with file from package replacetest-1.0-1.noarch
332 ])
333 AT_CLEANUP
334
335 AT_SETUP([upgrade empty directory to empty directory])
336 AT_KEYWORDS([install])
337 AT_CHECK([
338 RPMDB_CLEAR
339 RPMDB_INIT
340 tf="${RPMTEST}"/opt/foo
341 rm -rf "${RPMTEST}"/opt/*
342 rm -rf "${TOPDIR}"
343
344 runroot rpmbuild --quiet -bb \
345         --define "ver 1.0" \
346         --define "filetype dir" \
347           /data/SPECS/replacetest.spec
348
349 runroot rpmbuild --quiet -bb \
350         --define "ver 2.0" \
351         --define "filetype dir" \
352           /data/SPECS/replacetest.spec
353
354 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
355 test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
356 test -d "${tf}"
357 ],
358 [0],
359 [],
360 [])
361 AT_CLEANUP
362
363 AT_SETUP([upgrade empty directory to regular file])
364 AT_KEYWORDS([install])
365 AT_CHECK([
366 RPMDB_CLEAR
367 RPMDB_INIT
368 tf="${RPMTEST}"/opt/foo
369 rm -rf "${RPMTEST}"/opt/*
370 rm -rf "${TOPDIR}"
371
372 runroot rpmbuild --quiet -bb \
373         --define "ver 1.0" \
374         --define "filetype dir" \
375           /data/SPECS/replacetest.spec
376
377 runroot rpmbuild --quiet -bb \
378         --define "ver 2.0" \
379         --define "filetype file" \
380         --define "filedata woot" \
381           /data/SPECS/replacetest.spec
382
383 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
384 test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
385 ],
386 [2],
387 [],
388 [       file /opt/foo from install of replacetest-2.0-1.noarch conflicts with file from package replacetest-1.0-1.noarch
389 ])
390 AT_CLEANUP
391
392 AT_SETUP([upgrade locally symlinked directory])
393 AT_KEYWORDS([install])
394 AT_CHECK([
395 RPMDB_CLEAR
396 RPMDB_INIT
397 tf="${RPMTEST}"/opt/foo
398 rm -rf "${RPMTEST}"/opt/*
399 rm -rf "${TOPDIR}"
400
401 runroot rpmbuild --quiet -bb \
402         --define "ver 1.0" \
403         --define "filetype datadir" \
404         --define "filedata README1" \
405         --define "user $(id -u -n)" \
406         --define "grp $(id -g -n)" \
407           /data/SPECS/replacetest.spec
408
409 runroot rpmbuild --quiet -bb \
410         --define "ver 2.0" \
411         --define "filetype datadir" \
412         --define "filedata README2" \
413         --define "user $(id -u -n)" \
414         --define "grp $(id -g -n)" \
415           /data/SPECS/replacetest.spec
416
417 mkdir "${RPMTEST}"/opt/f00f
418 ln -s f00f "${RPMTEST}"/opt/foo
419 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
420 test -L "${tf}" && test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
421 test -L "${tf}" && test -d "${tf}"
422 ],
423 [0],
424 [],
425 [])
426 AT_CLEANUP
427
428 AT_SETUP([upgrade invalid locally symlinked directory])
429 AT_KEYWORDS([install])
430 AT_CHECK([
431 RPMDB_CLEAR
432 RPMDB_INIT
433 tf="${RPMTEST}"/opt/foo
434 rm -rf "${RPMTEST}"/opt/*
435 rm -rf "${TOPDIR}"
436
437 runroot rpmbuild --quiet -bb \
438         --define "ver 1.0" \
439         --define "filetype datadir" \
440         --define "filedata README1" \
441           /data/SPECS/replacetest.spec
442
443 runroot rpmbuild --quiet -bb \
444         --define "ver 2.0" \
445         --define "filetype datadir" \
446         --define "filedata README2" \
447           /data/SPECS/replacetest.spec
448
449 mkdir "${RPMTEST}"/opt/f00f
450 ln -s f00f "${RPMTEST}"/opt/foo
451 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
452 test -L "${tf}" && test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
453 test -d "${tf}"
454 ],
455 [0],
456 [],
457 [])
458 AT_CLEANUP
459
460 AT_SETUP([upgrade empty directory to broken link])
461 AT_KEYWORDS([install])
462 AT_CHECK([
463 RPMDB_CLEAR
464 RPMDB_INIT
465 tf="${RPMTEST}"/opt/foo
466 rm -rf "${RPMTEST}"/opt/*
467 rm -rf "${TOPDIR}"
468
469 runroot rpmbuild --quiet -bb \
470         --define "ver 1.0" \
471         --define "filetype dir" \
472           /data/SPECS/replacetest.spec
473
474 runroot rpmbuild --quiet -bb \
475         --define "ver 2.0" \
476         --define "filetype link" \
477         --define "filedata woot" \
478           /data/SPECS/replacetest.spec
479
480 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
481 test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
482 ],
483 [2],
484 [],
485 [       file /opt/foo from install of replacetest-2.0-1.noarch conflicts with file from package replacetest-1.0-1.noarch
486 ])
487 AT_CLEANUP
488
489 AT_SETUP([upgrade empty directory to file link])
490 AT_KEYWORDS([install])
491 AT_CHECK([
492 RPMDB_CLEAR
493 RPMDB_INIT
494 tf="${RPMTEST}"/opt/foo
495 rm -rf "${RPMTEST}"/opt/*
496 rm -rf "${TOPDIR}"
497
498 runroot rpmbuild --quiet -bb \
499         --define "ver 1.0" \
500         --define "filetype dir" \
501           /data/SPECS/replacetest.spec
502
503 runroot rpmbuild --quiet -bb \
504         --define "ver 2.0" \
505         --define "filetype link" \
506         --define "filedata woot" \
507           /data/SPECS/replacetest.spec
508
509 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
510 test -d "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
511 ],
512 [2],
513 [],
514 [       file /opt/foo from install of replacetest-2.0-1.noarch conflicts with file from package replacetest-1.0-1.noarch
515 ])
516 AT_CLEANUP
517
518 AT_SETUP([upgrade removed empty directory to file link])
519 AT_KEYWORDS([install])
520 AT_CHECK([
521 RPMDB_CLEAR
522 RPMDB_INIT
523 tf="${RPMTEST}"/opt/foo
524 rm -rf "${RPMTEST}"/opt/*
525 rm -rf "${TOPDIR}"
526
527 runroot rpmbuild --quiet -bb \
528         --define "ver 1.0" \
529         --define "filetype dir" \
530           /data/SPECS/replacetest.spec
531
532 runroot rpmbuild --quiet -bb \
533         --define "ver 2.0" \
534         --define "filetype link" \
535         --define "filedata goo" \
536           /data/SPECS/replacetest.spec
537
538 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
539 test -d "${tf}" && rmdir "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
540 readlink "${tf}"
541 ],
542 [0],
543 [goo
544 ],
545 [])
546 AT_CLEANUP
547
548 AT_SETUP([upgrade replaced empty directory to file link])
549 AT_KEYWORDS([install])
550 AT_CHECK([
551 RPMDB_CLEAR
552 RPMDB_INIT
553 tf="${RPMTEST}"/opt/foo
554 rm -rf "${RPMTEST}"/opt/*
555 rm -rf "${TOPDIR}"
556
557 runroot rpmbuild --quiet -bb \
558         --define "ver 1.0" \
559         --define "filetype dir" \
560           /data/SPECS/replacetest.spec
561
562 runroot rpmbuild --quiet -bb \
563         --define "ver 2.0" \
564         --define "filetype link" \
565         --define "filedata goo" \
566           /data/SPECS/replacetest.spec
567
568 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
569 test -d "${tf}" && rmdir "${tf}" && ln -sf goo "${tf}" && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
570 readlink "${tf}"
571 ],
572 [0],
573 [goo
574 ],
575 [])
576 AT_CLEANUP
577
578 AT_SETUP([upgrade empty directory to file link with pretrans])
579 AT_KEYWORDS([install])
580 AT_CHECK([
581 RPMDB_CLEAR
582 RPMDB_INIT
583 tf="${RPMTEST}"/opt/foo
584 rm -rf "${RPMTEST}"/opt/*
585 rm -rf "${TOPDIR}"
586
587 runroot rpmbuild --quiet -bb \
588         --define "ver 1.0" \
589         --define "filetype dir" \
590           /data/SPECS/replacetest.spec
591
592 runroot rpmbuild --quiet -bb \
593         --define "ver 2.0" \
594         --define "filetype link" \
595         --define "filedata goo" \
596         --define "fixit posix.rmdir('/opt/foo')" \
597           /data/SPECS/replacetest.spec
598
599 runroot rpm -U /build/RPMS/noarch/replacetest-1.0-1.noarch.rpm
600 test -d "${tf}" && runroot rpm -U --test /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm && runroot rpm -U /build/RPMS/noarch/replacetest-2.0-1.noarch.rpm
601 readlink "${tf}"
602 ],
603 [0],
604 [goo
605 ],
606 [])
607 AT_CLEANUP