summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2013-02-15 18:13:51 -0500
committerAllan McRae <allan@archlinux.org>2013-02-24 13:11:54 +1000
commit4a1d93b92c76bde58193083812dda94c0fa5d373 (patch)
treed2fced5db32e277d8df19e0b80adaf91adde277d /test
parent0bbc406ee8773ed646393cee175280c33fea8dff (diff)
downloadpacman-4a1d93b92c76bde58193083812dda94c0fa5d373.tar.xz
add fileconflict tests for cases with symlinks
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'test')
-rw-r--r--test/pacman/tests/fileconflict022.py21
-rw-r--r--test/pacman/tests/fileconflict023.py20
-rw-r--r--test/pacman/tests/fileconflict024.py19
-rw-r--r--test/pacman/tests/fileconflict025.py20
4 files changed, 80 insertions, 0 deletions
diff --git a/test/pacman/tests/fileconflict022.py b/test/pacman/tests/fileconflict022.py
new file mode 100644
index 00000000..6f9aec93
--- /dev/null
+++ b/test/pacman/tests/fileconflict022.py
@@ -0,0 +1,21 @@
+self.description = "File conflict between package with symlink and package with real path"
+
+self.filesystem = ["usr/lib/", "lib -> usr/lib/"]
+
+sp1 = pmpkg("foo")
+# share/ causes the entries to be reordered after path resolution
+sp1.files = ["lib/", "lib/file", "share/"]
+self.addpkg2db("sync", sp1)
+
+sp2 = pmpkg("bar")
+sp2.files = ["usr/", "usr/lib/", "usr/lib/file"]
+self.addpkg2db("sync", sp2)
+
+self.args = "-S %s %s" % (sp1.name, sp2.name)
+
+self.addrule("PACMAN_RETCODE=1")
+self.addrule("PACMAN_OUTPUT=.*/usr/lib/file exists in both 'foo' and 'bar'")
+self.addrule("!PKG_EXIST=foo")
+self.addrule("!PKG_EXIST=bar")
+
+self.expectfailure = True
diff --git a/test/pacman/tests/fileconflict023.py b/test/pacman/tests/fileconflict023.py
new file mode 100644
index 00000000..1310b680
--- /dev/null
+++ b/test/pacman/tests/fileconflict023.py
@@ -0,0 +1,20 @@
+self.description = "File conflict between package with symlink and package with real path resolved by removal"
+
+self.filesystem = ["usr/", "usr/lib/", "lib -> usr/lib/"]
+
+lp1 = pmpkg("foo")
+lp1.files = ["lib/", "lib/file"]
+self.addpkg2db("local", lp1)
+
+sp1 = pmpkg("bar")
+sp1.conflicts = ["foo"]
+sp1.files = ["usr/", "usr/lib/", "usr/lib/file"]
+self.addpkg2db("sync", sp1)
+
+self.args = "-S %s --ask=4" % sp1.name
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("!PKG_EXIST=foo")
+self.addrule("PKG_EXIST=bar")
+
+self.expectfailure = True
diff --git a/test/pacman/tests/fileconflict024.py b/test/pacman/tests/fileconflict024.py
new file mode 100644
index 00000000..1dcb5ade
--- /dev/null
+++ b/test/pacman/tests/fileconflict024.py
@@ -0,0 +1,19 @@
+self.description = "Filesystem conflict on upgrade with symlinks"
+
+self.filesystem = ["share", "usr/lib/", "lib -> usr/lib/"]
+
+lp1 = pmpkg("foo", "1-1")
+lp1.files = ["lib/"]
+self.addpkg2db("local", lp1)
+
+sp1 = pmpkg("foo", "1-2")
+# share/ causes the file order to change upon path resolution
+sp1.files = ["lib/", "share"]
+self.addpkg2db("sync", sp1)
+
+self.args = "-S %s" % sp1.name
+
+self.addrule("PACMAN_RETCODE=1")
+self.addrule("PKG_EXIST=foo|1-1")
+
+self.expectfailure = True
diff --git a/test/pacman/tests/fileconflict025.py b/test/pacman/tests/fileconflict025.py
new file mode 100644
index 00000000..efd027e1
--- /dev/null
+++ b/test/pacman/tests/fileconflict025.py
@@ -0,0 +1,20 @@
+self.description = "File conflict between package with symlink and package with real path resolved by removal (reversed)"
+
+self.filesystem = ["usr/lib/", "lib -> usr/lib/"]
+
+lp1 = pmpkg("foo")
+lp1.files = ["usr/", "usr/lib/", "usr/lib/file"]
+self.addpkg2db("local", lp1)
+
+sp1 = pmpkg("bar")
+sp1.conflicts = ["foo"]
+sp1.files = ["lib/", "lib/file"]
+self.addpkg2db("sync", sp1)
+
+self.args = "-S %s --ask=4" % sp1.name
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("!PKG_EXIST=foo")
+self.addrule("PKG_EXIST=bar")
+
+self.expectfailure = True