summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
+