diff options
author | Nagy Gabor <ngaba@petra.hos.u-szeged.hu> | 2007-07-25 14:47:46 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2007-08-20 21:24:28 +0200 |
commit | 13525255dcd257e69d7c246bf32ceb263fbc31b9 (patch) | |
tree | b0c7da95ad565899a6095d26e431e7207b4b48cb /pactest | |
parent | b1808930ce45a034981626fc20bbc7920890899e (diff) | |
download | pacman-13525255dcd257e69d7c246bf32ceb263fbc31b9.tar.gz pacman-13525255dcd257e69d7c246bf32ceb263fbc31b9.tar.xz |
Add sync1003 pactest.
The sync package pkg3 depends on the sync package pkg2, but pkg1 replaces pkg2.
So pkg2 is added to the remove list.
When checkdeps checks if pkg2 can be removed, it looks at the packages that require pkg2
(with the RequiredBy field of pkg2), but this doesn't contain pkg3 at this point.
RequiredBy fields are only updated after the packages are installed.
Proposed solution : checkdeps should know both the remove and upgrade list to decide properly.
Reference:
http://www.archlinux.org/pipermail/pacman-dev/2007-July/008972.html
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Diffstat (limited to 'pactest')
-rw-r--r-- | pactest/tests/sync1003.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/pactest/tests/sync1003.py b/pactest/tests/sync1003.py new file mode 100644 index 00000000..3fd9799d --- /dev/null +++ b/pactest/tests/sync1003.py @@ -0,0 +1,26 @@ +self.description = "Induced removal would break dependency" + +sp1 = pmpkg("pkg1", "1.0-2") +sp1.replaces = [ "pkg2" ] +self.addpkg2db("sync", sp1) + +sp2 = pmpkg("pkg2", "1.0-2") +self.addpkg2db("sync", sp2) + +sp3 = pmpkg("pkg3", "1.0-2") +sp3.depends = ["pkg2=1.0-2"] +self.addpkg2db("sync", sp3) + +lp1 = pmpkg("pkg1", "1.0-1") +self.addpkg2db("local", lp1) + +lp2 = pmpkg("pkg2", "1.0-2") +self.addpkg2db("local", lp2) + +lp3 = pmpkg("pkg3", "1.0-1") +self.addpkg2db("local", lp3) + +self.args = "-Su" + +self.addrule("PACMAN_RETCODE=1") +self.addrule("PKG_EXIST=pkg2") |