From 2f8be5f8db1e157d3bcdac763b79c7989567ca6d Mon Sep 17 00:00:00 2001
From: Andrew Gregory <andrew.gregory.8@gmail.com>
Date: Wed, 11 Dec 2013 11:58:28 -0500
Subject: trans_prepare: always sort trans->remove by deps

Packages can be removed during a sync transaction either directly or
due to conflicts and need to be sorted.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
---
 test/pacman/tests/TESTS      |  1 +
 test/pacman/tests/sync046.py | 29 +++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)
 create mode 100644 test/pacman/tests/sync046.py

(limited to 'test/pacman/tests')

diff --git a/test/pacman/tests/TESTS b/test/pacman/tests/TESTS
index fc6a7e8b..f52a1f74 100644
--- a/test/pacman/tests/TESTS
+++ b/test/pacman/tests/TESTS
@@ -158,6 +158,7 @@ TESTS += test/pacman/tests/sync042.py
 TESTS += test/pacman/tests/sync043.py
 TESTS += test/pacman/tests/sync044.py
 TESTS += test/pacman/tests/sync045.py
+TESTS += test/pacman/tests/sync046.py
 TESTS += test/pacman/tests/sync050.py
 TESTS += test/pacman/tests/sync051.py
 TESTS += test/pacman/tests/sync052.py
diff --git a/test/pacman/tests/sync046.py b/test/pacman/tests/sync046.py
new file mode 100644
index 00000000..63e8cc36
--- /dev/null
+++ b/test/pacman/tests/sync046.py
@@ -0,0 +1,29 @@
+self.description = "Install a sync package with interdependent conflicts"
+
+sp = pmpkg("pkg1")
+sp.conflicts = ["pkg2", "pkg3", "pkg4"]
+self.addpkg2db("sync", sp);
+
+lp1 = pmpkg("pkg2")
+lp1.depends = ["pkg3"]
+lp1.install['pre_remove'] = "[ -f pkg3file ] && echo '' > pkg2ok"
+self.addpkg2db("local", lp1);
+
+lp2 = pmpkg("pkg3")
+lp2.files = ["pkg3file"]
+self.addpkg2db("local", lp2);
+
+lp3 = pmpkg("pkg4")
+lp3.depends = ["pkg3"]
+lp3.install['pre_remove'] = "[ -f pkg3file ] && echo '' > pkg4ok"
+self.addpkg2db("local", lp3);
+
+self.args = "-S %s --ask=4" % sp.name
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("PKG_EXIST=pkg1")
+self.addrule("!PKG_EXIST=pkg2")
+self.addrule("!PKG_EXIST=pkg3")
+self.addrule("!PKG_EXIST=pkg4")
+self.addrule("FILE_EXIST=pkg2ok")
+self.addrule("FILE_EXIST=pkg4ok")
-- 
cgit v1.2.3-70-g09d2