/
githubmirror
/
rpm
Обзор
Документация
Войти
/
githubmirror
/
rpm
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/rpmscript.at
1 168 строк
24 KB
Daan De Meyer
Restore file trigger priority ordering
15 июл 2026, 14:40
15 июл 2026, 14:40
02fedc5
Код
Авторство
О чём код?
# rpmscript.at: rpm scriptlet tests AT_BANNER([RPM scriptlets]) RPMTEST_SETUP_RW([basic script failures 1]) AT_KEYWORDS([script]) runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec for v in 1.0 2.0; do runroot rpmbuild --quiet --define "ver ${v}" -bb /data/SPECS/scriptfail.spec done runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm pkgname="scriptfail" pkg1="${pkgname}-1.0-1" pkg2="${pkgname}-2.0-1" pkgfile1="/build/RPMS/noarch/${pkg1}.noarch.rpm" pkgfile2="/build/RPMS/noarch/${pkg2}.noarch.rpm" RPMTEST_CHECK([ runroot rpm -U --define "exitpretrans 1" ${pkgfile1} ], [1], [], [error: %pretrans(scriptfail-1.0-1.noarch) scriptlet failed, exit status 1 error: scriptfail-1.0-1.noarch: install skipped ]) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [1], [package scriptfail is not installed ], []) RPMTEST_CHECK([ runroot rpm -U --define "exitpretrans 0" ${pkgfile1} ], [0], [], []) RPMTEST_CHECK([ runroot rpm -q ${pkgname} runroot rpm -e ${pkgname} ], [0], [scriptfail-1.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -U --define "exitpre 1" ${pkgfile1} ], [1], [], [error: %prein(scriptfail-1.0-1.noarch) scriptlet failed, exit status 1 error: scriptfail-1.0-1.noarch: install failed ]) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [1], [package scriptfail is not installed ], []) RPMTEST_CHECK([ runroot rpm -U --define "exitpre 0" ${pkgfile1} ], [0], [], []) RPMTEST_CHECK([ runroot rpm -q ${pkgname} 2>&1 ], [0], [scriptfail-1.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -e --define "exitpreun 1" ${pkgname} ], [1], [], [error: %preun(scriptfail-1.0-1.noarch) scriptlet failed, exit status 1 error: scriptfail-1.0-1.noarch: erase failed ]) RPMTEST_CHECK([ runroot rpm -q ${pkgname} 2>&1 ], [0], [scriptfail-1.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -e --define "exitpreuntrans 1" ${pkgname} ], [1], [], [error: %preuntrans(scriptfail-1.0-1.noarch) scriptlet failed, exit status 1 error: scriptfail-1.0-1.noarch: erase skipped ]) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [0], [scriptfail-1.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -e --define "exitpreun 0" ${pkgname} ], [0], [], []) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [1], [package scriptfail is not installed ], []) RPMTEST_CHECK([ runroot rpm -U ${pkgfile1} runroot rpm -U --define "exitpost 1" ${pkgfile2} ], [1], [], [warning: %post(scriptfail-2.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [0], [scriptfail-2.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -e ${pkgname} runroot rpm -U ${pkgfile1} runroot rpm -U --define "exitpost 0" ${pkgfile2} ], [0], [], []) RPMTEST_CHECK([ runroot rpm -q ${pkgname} 2>&1 ], [0], [scriptfail-2.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -e ${pkgname} runroot rpm -U --define "exitposttrans 1" ${pkgfile1} ], [1], [], [warning: %posttrans(scriptfail-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [0], [scriptfail-1.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -e ${pkgname} runroot rpm -U --define "exitposttrans 0" ${pkgfile1} ], [0], [], []) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [0], [scriptfail-1.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -e ${pkgname} runroot rpm -U ${pkgfile1} runroot rpm -U --define "exitpostun 1" ${pkgfile2} ], [1], [], [warning: %postun(scriptfail-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [0], [scriptfail-2.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -e ${pkgname} runroot rpm -U ${pkgfile1} runroot rpm -U --define "exitpostuntrans 1" ${pkgfile2} ], [1], [], [warning: %postuntrans(scriptfail-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [0], [scriptfail-2.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -e ${pkgname} runroot rpm -U ${pkgfile1} runroot rpm -U --define "exitpostun 0" ${pkgfile2} ], [0], [], []) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [0], [scriptfail-2.0-1.noarch ], []) RPMTEST_CHECK([ runroot rpm -e ${pkgname} runroot rpm -U ${pkgfile1} runroot rpm -U --define "exitpostuntrans 0" ${pkgfile2} ], [], []) RPMTEST_CHECK([ runroot rpm -q ${pkgname} ], [0], [scriptfail-2.0-1.noarch ], []) RPMTEST_CLEANUP # ------------------------------ # RPMTEST_SETUP_RW([basic scripts and arguments]) AT_KEYWORDS([verify script]) runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec runroot rpmbuild --quiet -bb --define "rel 1" /data/SPECS/scripts.spec runroot rpmbuild --quiet -bb --define "rel 2" /data/SPECS/scripts.spec runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm RPMTEST_CHECK([ runroot rpm -Vvp /build/RPMS/noarch/scripts-1.0-1.noarch.rpm ], [0], [scripts-1.0-1 VERIFY 0 ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/scripts-1.0-1.noarch.rpm ], [0], [scripts-1.0-1 PRETRANS 1 scripts-1.0-1 PRE 1 scripts-1.0-1 POST 1 scripts-1.0-1 POSTTRANS 1 ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/scripts-1.0-2.noarch.rpm ], [0], [scripts-1.0-2 PRETRANS 2 scripts-1.0-1 PREUNTRANS 1 scripts-1.0-2 PRE 2 scripts-1.0-2 POST 2 scripts-1.0-1 PREUN 1 scripts-1.0-1 POSTUN 1 scripts-1.0-2 POSTTRANS 2 scripts-1.0-1 POSTUNTRANS 1 ], []) RPMTEST_CHECK([ runroot rpm -Vv scripts ], [0], [scripts-1.0-2 VERIFY 1 ], []) RPMTEST_CHECK([ runroot rpm -e scripts ], [0], [scripts-1.0-2 PREUNTRANS 0 scripts-1.0-2 PREUN 0 scripts-1.0-2 POSTUN 0 scripts-1.0-2 POSTUNTRANS 0 ], []) RPMTEST_CLEANUP RPMTEST_SETUP_RW([basic trigger scripts: package args]) AT_KEYWORDS([trigger script]) runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec runroot rpmbuild --quiet -bb /data/SPECS/hlinktest.spec runroot rpmbuild --quiet -bb \ --define "rel 1" \ --define "trigpkg hello-script hlinktest non-existent" \ /data/SPECS/triggers.spec runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm runroot rpm -U /build/RPMS/noarch/triggers-1.0-1.noarch.rpm RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm runroot rpm -e hello-script ], [0], [triggers-1.0-1 TRIGGERPREIN 1 0 triggers-1.0-1 TRIGGERIN 1 1 triggers-1.0-1 TRIGGERUN 1 0 triggers-1.0-1 TRIGGERPOSTUN 1 0 ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm runroot rpm -e hlinktest ], [0], [triggers-1.0-1 TRIGGERPREIN 1 0 triggers-1.0-1 TRIGGERIN 1 1 triggers-1.0-1 TRIGGERUN 1 0 triggers-1.0-1 TRIGGERPOSTUN 1 0 ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \ /build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm runroot rpm -e hello-script hlinktest ], [0], [triggers-1.0-1 TRIGGERPREIN 1 0 triggers-1.0-1 TRIGGERIN 1 1 triggers-1.0-1 TRIGGERPREIN 1 0 triggers-1.0-1 TRIGGERIN 1 1 triggers-1.0-1 TRIGGERUN 1 0 triggers-1.0-1 TRIGGERPOSTUN 1 0 triggers-1.0-1 TRIGGERUN 1 0 triggers-1.0-1 TRIGGERPOSTUN 1 0 ], []) RPMTEST_CHECK([ runroot rpm -e triggers runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \ /build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm runroot rpm -U /build/RPMS/noarch/triggers-1.0-1.noarch.rpm runroot rpm -e triggers ], [0], [triggers-1.0-1 TRIGGERPREIN 0 1 triggers-1.0-1 TRIGGERIN 1 1 triggers-1.0-1 TRIGGERUN 0 1 ], []) RPMTEST_CLEANUP RPMTEST_SETUP_RW([basic trigger scripts: failures]) AT_KEYWORDS([trigger script]) runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec runroot rpmbuild --quiet -bb --define "rel 1" --define "trigpkg foo" /data/SPECS/triggers.spec RPMTEST_CHECK([ runroot rpm -U \ /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm \ /build/RPMS/noarch/triggers-1.0-1.noarch.rpm ], [0], [], []) RPMTEST_CHECK([ runroot rpm -U \ --define "failtriggerprein 1" \ --nosignature \ /data/RPMS/foo-1.0-1.noarch.rpm ], [1], [triggers-1.0-1 TRIGGERPREIN 1 0 ], [error: %triggerprein(triggers-1.0-1.noarch) scriptlet failed, exit status 1 error: foo-1.0-1.noarch: install failed ]) RPMTEST_CHECK([ runroot rpm -U \ --define "failtriggerin 1" \ --nosignature \ /data/RPMS/foo-1.0-1.noarch.rpm ], [1], [triggers-1.0-1 TRIGGERPREIN 1 0 triggers-1.0-1 TRIGGERIN 1 1 ], [warning: %triggerin(triggers-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -e \ --define "failtriggerun 1" \ foo ], [1], [triggers-1.0-1 TRIGGERUN 1 0 ], [error: %triggerun(triggers-1.0-1.noarch) scriptlet failed, exit status 1 error: foo-1.0-1.noarch: erase failed ]) RPMTEST_CHECK([ runroot rpm -e \ --define "failtriggerpostun 1" \ foo ], [1], [triggers-1.0-1 TRIGGERUN 1 0 triggers-1.0-1 TRIGGERPOSTUN 1 0 ], [warning: %triggerpostun(triggers-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CLEANUP RPMTEST_SETUP_RW([basic trigger scripts: runtime args]) AT_KEYWORDS([trigger script]) runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec runroot rpmbuild --quiet -bb --define "rel 1" /data/SPECS/scripts.spec runroot rpmbuild --quiet -bb --define "rel 2" /data/SPECS/scripts.spec runroot rpmbuild --quiet -bb --define "rel 1" --define "trigpkg scripts" /data/SPECS/triggers.spec runroot rpmbuild --quiet -bb --define "rel 2" --define "trigpkg scripts" /data/SPECS/triggers.spec runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/triggers-1.0-1.noarch.rpm ], [0], [], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/scripts-1.0-1.noarch.rpm ], [0], [scripts-1.0-1 PRETRANS 1 triggers-1.0-1 TRIGGERPREIN 1 0 scripts-1.0-1 PRE 1 scripts-1.0-1 POST 1 triggers-1.0-1 TRIGGERIN 1 1 scripts-1.0-1 POSTTRANS 1 ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/scripts-1.0-2.noarch.rpm ], [0], [scripts-1.0-2 PRETRANS 2 scripts-1.0-1 PREUNTRANS 1 triggers-1.0-1 TRIGGERPREIN 1 1 scripts-1.0-2 PRE 2 scripts-1.0-2 POST 2 triggers-1.0-1 TRIGGERIN 1 2 triggers-1.0-1 TRIGGERUN 1 1 scripts-1.0-1 PREUN 1 scripts-1.0-1 POSTUN 1 triggers-1.0-1 TRIGGERPOSTUN 1 1 scripts-1.0-2 POSTTRANS 2 scripts-1.0-1 POSTUNTRANS 1 ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/triggers-1.0-2.noarch.rpm ], [0], [triggers-1.0-2 TRIGGERPREIN 1 1 triggers-1.0-2 TRIGGERIN 2 1 triggers-1.0-1 TRIGGERUN 1 1 ], []) RPMTEST_CHECK([ runroot rpm -e scripts ], [0], [scripts-1.0-2 PREUNTRANS 0 triggers-1.0-2 TRIGGERUN 1 0 scripts-1.0-2 PREUN 0 scripts-1.0-2 POSTUN 0 triggers-1.0-2 TRIGGERPOSTUN 1 0 scripts-1.0-2 POSTUNTRANS 0 ], []) RPMTEST_CLEANUP RPMTEST_SETUP_RW([basic file trigger scripts]) AT_KEYWORDS([filetrigger script]) runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec runroot rpmbuild --quiet -bb /data/SPECS/hlinktest.spec runroot rpmbuild --quiet -bb /data/SPECS/filetriggers.spec runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm runroot rpm -U /build/RPMS/noarch/filetriggers-1.0-1.noarch.rpm RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \ /build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm ], [0], [filetriggerin(/foo*): /foo/aaaa /foo/copyllo /foo/hello /foo/hello-bar /foo/hello-foo /foo/hello-world /foo/zzzz filetriggerin(/foo*)<lua>: /foo/aaaa /foo/copyllo /foo/hello /foo/hello-bar /foo/hello-foo /foo/hello-world /foo/zzzz filetriggerin(/usr/bin*): 1 1 /usr/bin/hello filetriggerin(/usr/bin*)<lua>: 1 1 /usr/bin/hello transfiletriggerin(/usr/bin*): 1 /usr/bin/hello transfiletriggerin(/foo*): /foo/aaaa /foo/copyllo /foo/hello /foo/hello-bar /foo/hello-foo /foo/hello-world /foo/zzzz ], []) RPMTEST_CHECK([ runroot rpm -e hello-script hlinktest ], [0], [transfiletriggerun(/usr/bin*): 1 /usr/bin/hello transfiletriggerun(/foo*): /foo/aaaa /foo/copyllo /foo/hello /foo/hello-bar /foo/hello-foo /foo/hello-world /foo/zzzz filetriggerun(/foo*): /foo/aaaa /foo/copyllo /foo/hello /foo/hello-bar /foo/hello-foo /foo/hello-world /foo/zzzz filetriggerpostun(/foo*): /foo/aaaa /foo/copyllo /foo/hello /foo/hello-bar /foo/hello-foo /foo/hello-world /foo/zzzz filetriggerun(/usr/bin*): 1 0 /usr/bin/hello filetriggerun(/usr/bin*)<lua>: 1 0 /usr/bin/hello filetriggerpostun(/usr/bin*): 1 0 /usr/bin/hello transfiletriggerpostun(/usr/bin*): 1 transfiletriggerpostun(/foo*): ], []) RPMTEST_CLEANUP RPMTEST_SETUP_RW([transaction file trigger priority order]) AT_KEYWORDS([filetrigger script priority]) runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec runroot rpmbuild --quiet -bb /data/SPECS/filetrigger-priority.spec runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm RPMTEST_CHECK([ runroot rpm -U \ /build/RPMS/noarch/filetrigger-priority-1.0-1.noarch.rpm \ /build/RPMS/noarch/filetrigger-priority-data-1.0-1.noarch.rpm ], [0], [priority 200 priority 100 ], []) RPMTEST_CLEANUP RPMTEST_SETUP_RW([basic file triggers: failures]) AT_KEYWORDS([filetrigger script]) runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec runroot rpmbuild --quiet -bb \ --define "_datadir /usr/share" \ /data/SPECS/testdoc.spec runroot rpmbuild --quiet -bb \ --define "trigpath /usr/share/doc/testdoc/examples/" \ /data/SPECS/ftrigfail.spec RPMTEST_CHECK([ runroot rpm -U \ /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm \ /build/RPMS/noarch/ftrigfail-1.0-1.noarch.rpm ], [0], [], []) RPMTEST_CHECK([ runroot rpm -U \ --define "failfiletriggerin 1" \ /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm ], [1], [FILETRIGGERIN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 TRANSFILETRIGGERIN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 ], [warning: %filetriggerin(ftrigfail-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -e \ --define "failtransfiletriggerun 1" \ testdoc ], [1], [TRANSFILETRIGGERUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 FILETRIGGERUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 FILETRIGGERPOSTUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 TRANSFILETRIGGERPOSTUN ], [warning: %transfiletriggerun(ftrigfail-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -U \ --define "failtransfiletriggerin 1" \ /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm ], [1], [FILETRIGGERIN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 TRANSFILETRIGGERIN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 ], [warning: %transfiletriggerin(ftrigfail-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -e \ --define "failtransfiletriggerun 1" \ testdoc ], [1], [TRANSFILETRIGGERUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 FILETRIGGERUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 FILETRIGGERPOSTUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 TRANSFILETRIGGERPOSTUN ], [warning: %transfiletriggerun(ftrigfail-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm &> /dev/null runroot rpm -e \ --define "failfiletriggerun 1" \ testdoc ], [1], [TRANSFILETRIGGERUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 FILETRIGGERUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 FILETRIGGERPOSTUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 TRANSFILETRIGGERPOSTUN ], [warning: %filetriggerun(ftrigfail-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm &> /dev/null runroot rpm -e \ --define "failfiletriggerpostun 1" \ testdoc ], [1], [TRANSFILETRIGGERUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 FILETRIGGERUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 FILETRIGGERPOSTUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 TRANSFILETRIGGERPOSTUN ], [warning: %filetriggerpostun(ftrigfail-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/testdoc-1.0-1.noarch.rpm &> /dev/null runroot rpm -e \ --define "failtransfiletriggerpostun 1" \ testdoc ], [1], [TRANSFILETRIGGERUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 FILETRIGGERUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 FILETRIGGERPOSTUN /usr/share/doc/testdoc/examples/example1 /usr/share/doc/testdoc/examples/example2 TRANSFILETRIGGERPOSTUN ], [warning: %transfiletriggerpostun(ftrigfail-1.0-1.noarch) scriptlet failed, exit status 1 ]) RPMTEST_CLEANUP RPMTEST_SETUP_RW([basic file triggers: prefix args]) AT_KEYWORDS([filetrigger script]) runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec runroot rpmbuild --quiet -bb /data/SPECS/hello-script.spec runroot rpmbuild --quiet -bb /data/SPECS/hlinktest.spec runroot rpmbuild --quiet -bb /data/SPECS/filetriggers-prefix.spec runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm runroot rpm -U /build/RPMS/noarch/filetriggers-prefix-1.0-1.noarch.rpm RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm runroot rpm -e hello-script ], [0], [filetriggerin: /usr/bin transfiletriggerin: /usr/bin transfiletriggerun: /usr/bin filetriggerun: /usr/bin filetriggerpostun: /usr/bin transfiletriggerpostun: /usr/bin ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm runroot rpm -e hlinktest ], [0], [filetriggerin: /foo transfiletriggerin: /foo transfiletriggerun: /foo filetriggerun: /foo filetriggerpostun: /foo transfiletriggerpostun: /foo ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \ /build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm runroot rpm -e hello-script hlinktest ], [0], [filetriggerin: /foo filetriggerin: /usr/bin transfiletriggerin: /foo /usr/bin transfiletriggerun: /foo /usr/bin filetriggerun: /foo filetriggerpostun: /foo filetriggerun: /usr/bin filetriggerpostun: /usr/bin transfiletriggerpostun: /usr/bin transfiletriggerpostun: /foo ], []) RPMTEST_CHECK([ runroot rpm -e filetriggers-prefix runroot rpm -U /build/RPMS/noarch/hello-script-1.0-1.noarch.rpm \ /build/RPMS/noarch/hlinktest-1.0-1.noarch.rpm runroot rpm -U /build/RPMS/noarch/filetriggers-prefix-1.0-1.noarch.rpm runroot rpm -e filetriggers-prefix ], [0], [filetriggerin: /foo /usr/bin transfiletriggerin: /foo /usr/bin transfiletriggerun: /foo /usr/bin filetriggerun: /foo /usr/bin ], []) RPMTEST_CLEANUP RPMTEST_SETUP_RW([basic file triggers: runtime args]) AT_KEYWORDS([filetrigger script]) runroot rpmbuild --quiet -bb /data/SPECS/fakeshell.spec for v in 1.0 2.0 3.0; do runroot rpmbuild --quiet -bb --define "ver ${v}" /data/SPECS/parallel.spec done runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm runroot rpm -U /build/RPMS/noarch/parallel-trigger-1.0-1.noarch.rpm RPMTEST_CHECK([ runroot rpm -i /build/RPMS/noarch/parallel-1.0-1.noarch.rpm ], [0], [parallel-trigger-1.0-1 FILETRIGGERIN 1 1 | 12 parallel-trigger-1.0-1 TRANSFILETRIGGERIN 1 | 12 ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/parallel-2.0-1.noarch.rpm ], [0], [parallel-trigger-1.0-1 TRANSFILETRIGGERUN 1 | 12 parallel-trigger-1.0-1 FILETRIGGERIN 1 2 | 12 parallel-trigger-1.0-1 FILETRIGGERUN 1 1 | 11 parallel-trigger-1.0-1 FILETRIGGERPOSTUN 1 1 | 11 parallel-trigger-1.0-1 TRANSFILETRIGGERIN 1 | 12 parallel-trigger-1.0-1 TRANSFILETRIGGERPOSTUN 1 | 0 ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/parallel-trigger-2.0-1.noarch.rpm ], [0], [parallel-trigger-1.0-1 TRANSFILETRIGGERUN 1 | 12 parallel-trigger-2.0-1 FILETRIGGERIN 2 1 | 12 parallel-trigger-1.0-1 FILETRIGGERUN 1 1 | 12 parallel-trigger-2.0-1 TRANSFILETRIGGERIN 2 | 12 ], []) RPMTEST_CHECK([ runroot rpm -e parallel ], [0], [parallel-trigger-2.0-1 TRANSFILETRIGGERUN 1 | 12 parallel-trigger-2.0-1 FILETRIGGERUN 1 0 | 12 parallel-trigger-2.0-1 FILETRIGGERPOSTUN 1 0 | 12 parallel-trigger-2.0-1 TRANSFILETRIGGERPOSTUN 1 | 0 ], []) RPMTEST_CHECK([ runroot rpm -e parallel-trigger ], [0], [], []) RPMTEST_CHECK([ runroot rpm -i \ /build/RPMS/noarch/parallel-1.0-1.noarch.rpm \ /build/RPMS/noarch/parallel-2.0-1.noarch.rpm \ /build/RPMS/noarch/parallel-3.0-1.noarch.rpm runroot rpm -U /build/RPMS/noarch/parallel-trigger-1.0-1.noarch.rpm ], [0], [parallel-trigger-1.0-1 FILETRIGGERIN 1 3 | 36 parallel-trigger-1.0-1 TRANSFILETRIGGERIN 1 | 36 ], []) RPMTEST_CHECK([ runroot rpm -U /build/RPMS/noarch/parallel-trigger-2.0-1.noarch.rpm ], [0], [parallel-trigger-1.0-1 TRANSFILETRIGGERUN 1 | 36 parallel-trigger-2.0-1 FILETRIGGERIN 2 3 | 36 parallel-trigger-1.0-1 FILETRIGGERUN 1 3 | 36 parallel-trigger-2.0-1 TRANSFILETRIGGERIN 2 | 36 ], []) RPMTEST_CHECK([ runroot rpm -e parallel-trigger ], [0], [parallel-trigger-2.0-1 TRANSFILETRIGGERUN 0 | 36 parallel-trigger-2.0-1 FILETRIGGERUN 0 3 | 36 ], []) RPMTEST_CHECK([ runroot rpm -e --allmatches parallel runroot rpm -U \ /build/RPMS/noarch/parallel-1.0-1.noarch.rpm \ /build/RPMS/noarch/parallel-trigger-1.0-1.noarch.rpm ], [0], [parallel-trigger-1.0-1 FILETRIGGERIN 1 1 | 12 parallel-trigger-1.0-1 TRANSFILETRIGGERIN 1 | 12 ], []) RPMTEST_CHECK([ runroot rpm -U \ /build/RPMS/noarch/parallel-2.0-1.noarch.rpm \ /build/RPMS/noarch/parallel-trigger-2.0-1.noarch.rpm ], [0], [parallel-trigger-1.0-1 TRANSFILETRIGGERUN 1 | 12 parallel-trigger-2.0-1 FILETRIGGERIN 2 1 | 12 parallel-trigger-2.0-1 FILETRIGGERIN 2 2 | 12 parallel-trigger-1.0-1 FILETRIGGERUN 1 2 | 24 parallel-trigger-2.0-1 FILETRIGGERPOSTUN 1 1 | 11 parallel-trigger-2.0-1 TRANSFILETRIGGERPOSTUN 1 | 0 parallel-trigger-2.0-1 TRANSFILETRIGGERIN 2 | 12 ], []) RPMTEST_CHECK([ runroot rpm -U \ /build/RPMS/noarch/parallel-trigger-3.0-1.noarch.rpm \ /build/RPMS/noarch/parallel-3.0-1.noarch.rpm ], [0], [parallel-trigger-2.0-1 TRANSFILETRIGGERUN 1 | 12 parallel-trigger-3.0-1 FILETRIGGERIN 2 2 | 24 parallel-trigger-2.0-1 FILETRIGGERUN 2 1 | 11 parallel-trigger-3.0-1 FILETRIGGERPOSTUN 2 1 | 11 parallel-trigger-2.0-1 FILETRIGGERUN 1 1 | 12 parallel-trigger-3.0-1 TRANSFILETRIGGERPOSTUN 1 | 0 parallel-trigger-3.0-1 TRANSFILETRIGGERIN 2 | 12 ], []) RPMTEST_CLEANUP RPMTEST_SETUP_RW([script running environment]) AT_KEYWORDS([script]) RPMTEST_SKIP_IF([test ${HAVE_UNSHARE} = 0]) runroot rpmbuild -bb --quiet \ /data/SPECS/fakeshell.spec \ /data/SPECS/scriptwrite.spec RPMTEST_CHECK([ RPMDB_RESET runroot rm -f /tmp/scriptwrite.log runroot rpm -U /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm /build/RPMS/noarch/scriptwrite-1.0-1.noarch.rpm runroot test -f /tmp/scriptwrite.log ], [1], [], []) RPMTEST_CHECK([ RPMDB_RESET runroot rm -f /tmp/scriptwrite.log runroot rpm -U --noplugins /build/RPMS/noarch/fakeshell-1.0-1.noarch.rpm /build/RPMS/noarch/scriptwrite-1.0-1.noarch.rpm runroot test -f /tmp/scriptwrite.log ], [0], [], []) RPMTEST_CLEANUP RPMTEST_SETUP_RW([deprecated Lua functions]) AT_KEYWORDS([script lua]) # binary pre-built on rpm 4.18 should emit no warnings RPMTEST_CHECK([ RPMDB_RESET runroot rpm -U --nosignature /data/RPMS/luafork-1.0-1.noarch.rpm ], [0], [child ], []) RPMTEST_CHECK([ RPMDB_RESET # binary pre-built on rpm 4.20 gets deprecation warnings runroot rpm -U --nosignature /data/RPMS/luafork-1.0-1-deprecated.noarch.rpm ], [0], [child ], [warning: posix.fork(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.spawn() or rpm.execute() instead warning: posix.wait(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use rpm.spawn() or rpm.execute() instead ]) RPMTEST_CHECK([ RPMDB_RESET # new uses get an error runroot rpmbuild -bb --quiet /data/SPECS/luafork.spec runroot rpm -U /build/RPMS/noarch/luafork-1.0-1.noarch.rpm ], [1], [], [[error: lua script failed: [string "%prein(luafork-1.0-1.noarch)"]:1: posix.fork() is no longer available, use rpm.spawn() or rpm.execute() instead error: luafork-1.0-1.noarch: install failed ]]) RPMTEST_CLEANUP