summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2016-02-22 03:46:35 +0100
committerAllan McRae <allan@archlinux.org>2016-02-23 03:15:43 +0100
commit2ee7a8d89ad693617307260604e1d58757fd2978 (patch)
tree4168d3e07cd4a8ebe21180ac8bc0e27fb05821dd /test
parentf63854fa96f658ca5bdf2c21a1cd33cf4e3fbdbd (diff)
downloadpacman-2ee7a8d89ad693617307260604e1d58757fd2978.tar.gz
pacman-2ee7a8d89ad693617307260604e1d58757fd2978.tar.xz
do not rely on localdb for hook matching
Relying on localdb to determine which trigger operations should match is completely broken for PostTransaction hooks because the localdb has already been updated. Store a copy of the old version of any packages being updated to use instead. Fixes FS#47996 Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'test')
-rw-r--r--test/pacman/tests/TESTS1
-rw-r--r--test/pacman/tests/hook-pkg-postinstall-trigger-match.py23
2 files changed, 24 insertions, 0 deletions
diff --git a/test/pacman/tests/TESTS b/test/pacman/tests/TESTS
index acdf769b..9c330203 100644
--- a/test/pacman/tests/TESTS
+++ b/test/pacman/tests/TESTS
@@ -59,6 +59,7 @@ TESTS += test/pacman/tests/hook-file-remove-trigger-match.py
TESTS += test/pacman/tests/hook-file-upgrade-nomatch.py
TESTS += test/pacman/tests/hook-invalid-trigger.py
TESTS += test/pacman/tests/hook-pkg-install-trigger-match.py
+TESTS += test/pacman/tests/hook-pkg-postinstall-trigger-match.py
TESTS += test/pacman/tests/hook-pkg-remove-trigger-match.py
TESTS += test/pacman/tests/hook-pkg-upgrade-trigger-match.py
TESTS += test/pacman/tests/hook-target-list.py
diff --git a/test/pacman/tests/hook-pkg-postinstall-trigger-match.py b/test/pacman/tests/hook-pkg-postinstall-trigger-match.py
new file mode 100644
index 00000000..b9b07cda
--- /dev/null
+++ b/test/pacman/tests/hook-pkg-postinstall-trigger-match.py
@@ -0,0 +1,23 @@
+self.description = "Install a package matching a PostTransaction Install hook"
+
+self.add_script("hook-script", ": > hook-output")
+self.add_hook("hook",
+ """
+ [Trigger]
+ Type = Package
+ Operation = Install
+ Target = foo
+
+ [Action]
+ When = PostTransaction
+ Exec = bin/hook-script
+ """);
+
+sp = pmpkg("foo")
+self.addpkg2db("sync", sp)
+
+self.args = "-S foo"
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("PKG_EXIST=foo")
+self.addrule("FILE_EXIST=hook-output")