always run 'dpkg --configure -a' at the end of our dpkg callings
[ntk/apt.git] / test / integration / test-bug-769609-triggers-still-pending-after-run
diff --git a/test/integration/test-bug-769609-triggers-still-pending-after-run b/test/integration/test-bug-769609-triggers-still-pending-after-run
new file mode 100755 (executable)
index 0000000..146fa76
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture 'amd64'
+
+msgtest 'Check if installed dpkg supports' 'noawait trigger'
+if dpkg-checkbuilddeps -d 'dpkg (>= 1.16.1)' /dev/null; then
+       msgpass
+else
+       msgskip 'dpkg version too old'
+       exit 0
+fi
+configdpkgnoopchroot
+
+buildtriggerpackages() {
+       local TYPE="$1"
+       setupsimplenativepackage "triggerable-$TYPE" 'all' '1.0' 'unstable' "Depends: trigdepends-$TYPE"
+       BUILDDIR="incoming/triggerable-${TYPE}-1.0"
+       cat >${BUILDDIR}/debian/postinst <<EOF
+#!/bin/sh
+if [ "\$1" = 'triggered' ]; then
+       ls -l /proc/self/fd/
+fi
+EOF
+       echo "$TYPE /usr/share/doc" > ${BUILDDIR}/debian/triggers
+       buildpackage "$BUILDDIR" 'unstable' 'main' 'native'
+       rm -rf "$BUILDDIR"
+       buildsimplenativepackage "trigdepends-$TYPE" 'all' '1.0' 'unstable'
+}
+
+#buildtriggerpackages 'interest'
+buildtriggerpackages 'interest-noawait'
+buildsimplenativepackage "trigstuff" 'all' '1.0' 'unstable'
+
+setupaptarchive
+
+runtests() {
+       local TYPE="$1"
+       msgmsg 'Working with trigger type' "$TYPE"
+       testsuccess aptget install triggerable-$TYPE -y
+       cp rootdir/tmp/testsuccess.output terminal.output
+       testsuccess grep '^REWRITE ' terminal.output
+       testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
+
+       testsuccess aptget install trigdepends-$TYPE -y --reinstall
+       cp rootdir/tmp/testsuccess.output terminal.output
+       testsuccess grep '^REWRITE ' terminal.output
+       testsuccess grep ' root root ' terminal.output
+       testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
+
+       testsuccess aptget install trigstuff -y
+       cp rootdir/tmp/testsuccess.output terminal.output
+       testsuccess grep '^REWRITE ' terminal.output
+       testsuccess grep ' root root ' terminal.output
+       testdpkginstalled triggerable-$TYPE trigdepends-$TYPE trigstuff
+
+       testsuccess aptget purge trigstuff -y
+       cp rootdir/tmp/testsuccess.output terminal.output
+       testsuccess grep '^REWRITE ' terminal.output
+       testsuccess grep ' root root ' terminal.output
+       testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
+       testdpkgnotinstalled trigstuff
+
+       testsuccess aptget purge trigdepends-$TYPE -y
+       cp rootdir/tmp/testsuccess.output terminal.output
+       testfailure grep '^REWRITE ' terminal.output
+       testfailure grep ' root root ' terminal.output
+       testdpkgnotinstalled triggerable-$TYPE trigdepends-$TYPE
+}
+#runtests 'interest'
+runtests 'interest-noawait'