diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2017-12-13 13:33:50 +0200 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2018-03-28 14:07:44 +0300 |
commit | 335a7ed45bd3c5877ae321e21a84b96c768ff3a2 (patch) | |
tree | b58904b860584f187011638ac6af21fd6da5affa | |
parent | 08b2b2e5a262445be70e2a3e5709324777cad1a9 (diff) | |
download | rpm-335a7ed45bd3c5877ae321e21a84b96c768ff3a2.tar.gz |
Add a testcase for issue #370
Besides testing the output length sanity, add provisions for testing
scriptlet arguments too. All those zeros are technically wrong, but it
simply reflects what is implemented, there's no attempt at providing
anything else to the file triggers atm.
Backported from commit c6170c6c060af1a3b2c35635aeec9fb65ff8b491
-rw-r--r-- | tests/Makefile.am | 3 | ||||
-rw-r--r-- | tests/data/SPECS/parallel.spec | 50 | ||||
-rw-r--r-- | tests/rpmscript.at | 47 |
3 files changed, 99 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 1e71d685f..3a99b11f4 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -55,6 +55,7 @@ EXTRA_DIST += data/SPECS/selfconflict.spec EXTRA_DIST += data/SPECS/replacetest.spec EXTRA_DIST += data/SPECS/triggers.spec EXTRA_DIST += data/SPECS/filetriggers.spec +EXTRA_DIST += data/SPECS/parallel.spec EXTRA_DIST += data/SPECS/prefixtest.spec EXTRA_DIST += data/SPECS/testdoc.spec EXTRA_DIST += data/SOURCES/hello-1.0-modernize.patch @@ -112,7 +113,7 @@ testing$(bindir)/rpmbuild: ../rpmbuild for node in urandom stdin stderr stdout null; do ln -s /dev/$${node} testing/dev/$${node}; done for cf in hosts resolv.conf passwd shadow group gshadow mtab fstab; do [ -f /etc/$${cf} ] && ln -s /etc/$${cf} testing/etc/$${cf}; done ln -s ../$(bindir) testing/usr/bin - for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file ionice mktemp nice cut sort diff touch; do p=`which $${prog}`; ln -s $${p} testing/$${p}; done + for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file ionice mktemp nice cut sort diff touch wc; do p=`which $${prog}`; ln -s $${p} testing/$${p}; done for d in /proc /sys /selinux /etc/selinux; do if [ -d $${d} ]; then ln -s $${d} testing/$${d}; fi; done (cd testing/magic && file -C) diff --git a/tests/data/SPECS/parallel.spec b/tests/data/SPECS/parallel.spec new file mode 100644 index 000000000..41896726e --- /dev/null +++ b/tests/data/SPECS/parallel.spec @@ -0,0 +1,50 @@ +Name: parallel +Version: %{ver} +Release: 1%{?dist} +Summary: Testing parallel install behavior +BuildArch: noarch +License: GPL + +%description +%{summary} + +%package trigger +Summary: %{summary} + +%description trigger +%{summary} + +%transfiletriggerin trigger -- /opt/parallel +echo %transfiletriggerin: $* +cat | wc -l + +%transfiletriggerun trigger -- /opt/parallel +echo %transfiletriggerun: $* +cat | wc -l + +%transfiletriggerpostun trigger -- /opt/parallel +echo %transfiletriggerpostun: $* +cat | wc -l + +%filetriggerin trigger -- /opt/parallel +echo %filetriggerin: $* +cat | wc -l + +%filetriggerpostun trigger -- /opt/parallel +echo %filetriggerpostun: $* +cat | wc -l + + +%install +for d in mydir yourdir; do + datadir=%{buildroot}/opt/parallel/%{version}/${d} + mkdir -p ${datadir} + for f in 1 2 3 4; do + echo ${f} > ${datadir}/${f} + done +done + +%files +/opt/%{name} + +%files trigger diff --git a/tests/rpmscript.at b/tests/rpmscript.at index 1ac7fcda2..d360ac998 100644 --- a/tests/rpmscript.at +++ b/tests/rpmscript.at @@ -268,3 +268,50 @@ IOnice value is none: prio 4 ], []) AT_CLEANUP + +AT_SETUP([basic file triggers 2]) +AT_KEYWORDS([filetrigger script]) +AT_CHECK([ +RPMDB_CLEAR +RPMDB_INIT +rm -rf "${TOPDIR}" + +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 -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 + +echo INSTALL: +runroot rpm -U /build/RPMS/noarch/parallel-trigger-1.0-1.noarch.rpm +echo UPGRADE: +runroot rpm -U /build/RPMS/noarch/parallel-trigger-2.0-1.noarch.rpm +echo ERASE: +runroot rpm -e parallel-trigger + +], +[0], +[INSTALL: +%filetriggerin: 0 0 +36 +%transfiletriggerin: 0 0 +36 +UPGRADE: +%transfiletriggerun: 0 0 +36 +%filetriggerin: 0 0 +36 +%transfiletriggerin: 0 0 +36 +ERASE: +%transfiletriggerun: 0 0 +36 +], +[]) +AT_CLEANUP + |