summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2017-12-13 13:33:50 +0200
committerPanu Matilainen <pmatilai@redhat.com>2018-03-28 14:07:44 +0300
commit335a7ed45bd3c5877ae321e21a84b96c768ff3a2 (patch)
treeb58904b860584f187011638ac6af21fd6da5affa
parent08b2b2e5a262445be70e2a3e5709324777cad1a9 (diff)
downloadrpm-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.am3
-rw-r--r--tests/data/SPECS/parallel.spec50
-rw-r--r--tests/rpmscript.at47
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
+