summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2012-07-17 13:22:08 +1000
committerDan McGee <dan@archlinux.org>2012-08-02 09:38:37 -0500
commitfa2eadcec75e8e54a4bb3cf1f38a07ec71784032 (patch)
treedbf85fc5dfe112180b91d7fcc7236881e00b60fd
parenteb871553912f5cf4ab3cb8aade73cf2a24dcb82c (diff)
downloadpacman-fa2eadcec75e8e54a4bb3cf1f38a07ec71784032.tar.xz
pactest: Do not remove symlink to directory if local package uses that path
If we have a symlink to a directory (e.g. /lib -> usr/lib), then we can not remove it if a local package thinks it has files in the symlink directory (e.g. /lib/foo), because this will invalidate the local file database. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--test/pacman/tests/sync700.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/pacman/tests/sync700.py b/test/pacman/tests/sync700.py
new file mode 100644
index 00000000..0002b643
--- /dev/null
+++ b/test/pacman/tests/sync700.py
@@ -0,0 +1,22 @@
+self.description = "do not remove directory symlink if another package has file in its path"
+
+lp1 = pmpkg("pkg1")
+lp1.files = ["usr/lib/foo",
+ "lib -> usr/lib"]
+self.addpkg2db("local", lp1)
+
+lp2 = pmpkg("pkg2")
+lp2.files = ["lib/bar"]
+self.addpkg2db("local", lp2)
+
+p = pmpkg("pkg1", "1.0-2")
+p.files = ["usr/lib/foo"]
+self.addpkg2db("sync", p)
+
+self.args = "-S pkg1"
+
+self.addrule("PACMAN_RETCODE=1")
+self.addrule("PKG_VERSION=pkg1|1.0-1")
+self.addrule("FILE_EXIST=/lib/bar")
+
+self.expectfailure = True