From 2ee7a8d89ad693617307260604e1d58757fd2978 Mon Sep 17 00:00:00 2001 From: Andrew Gregory Date: Sun, 21 Feb 2016 21:46:35 -0500 Subject: 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 Signed-off-by: Allan McRae --- test/pacman/tests/TESTS | 1 + .../tests/hook-pkg-postinstall-trigger-match.py | 23 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 test/pacman/tests/hook-pkg-postinstall-trigger-match.py (limited to 'test') 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") -- cgit v1.2.3-24-g4f1b