summaryrefslogtreecommitdiffstats
path: root/pactest
diff options
context:
space:
mode:
authorChantry Xavier <shiningxc@gmail.com>2007-09-23 17:07:13 +0200
committerDan McGee <dan@archlinux.org>2007-09-24 02:50:11 +0200
commit105fd40a4a9b221df0186e7500fe491b3b96d823 (patch)
tree7bf5e564992b8915e9c0f6738c0521468204252f /pactest
parent6898bb0f9742e078f2c45609cf00d43438a14843 (diff)
downloadpacman-105fd40a4a9b221df0186e7500fe491b3b96d823.tar.gz
pacman-105fd40a4a9b221df0186e7500fe491b3b96d823.tar.xz
Add sync044 pactest : A dependency induces a replacement.
That is the problem mentioned by Nagy there (with suggestions for fixing it) : http://www.archlinux.org/pipermail/pacman-dev/2007-August/009082.html If a dependency conflicts with a local package and has to replace it, the PM_SYNC_TYPE_DEPEND information is lost, and the resulting install reason is wrong (the package is marked as explictly installed). Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Diffstat (limited to 'pactest')
-rw-r--r--pactest/tests/sync044.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/pactest/tests/sync044.py b/pactest/tests/sync044.py
new file mode 100644
index 00000000..c4ff1549
--- /dev/null
+++ b/pactest/tests/sync044.py
@@ -0,0 +1,20 @@
+self.description = "A dependency induces a replacement"
+
+lp1 = pmpkg("pkg1")
+self.addpkg2db("local", lp1);
+
+sp2 = pmpkg("pkg2")
+sp2.depends = ["pkg3"]
+self.addpkg2db("sync", sp2);
+
+sp3 = pmpkg("pkg3")
+sp3.conflicts = ["pkg1"]
+self.addpkg2db("sync", sp3);
+
+self.args = "-S pkg2"
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("!PKG_EXIST=pkg1")
+self.addrule("PKG_EXIST=pkg2")
+self.addrule("PKG_EXIST=pkg3")
+self.addrule("PKG_REASON=pkg3|1")