diff options
author | Dan McGee <dan@archlinux.org> | 2011-06-27 16:07:06 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-06-27 16:15:31 +0200 |
commit | e378170c2555b656ef87715d8284d038037ced5f (patch) | |
tree | ec6987dcd3f351903881bedee0a3bd846aa7fbe4 /test | |
parent | f8f4c2a6f301ab423f3ca702ebc24854cc701683 (diff) | |
download | pacman-e378170c2555b656ef87715d8284d038037ced5f.tar.gz pacman-e378170c2555b656ef87715d8284d038037ced5f.tar.xz |
Ensure a file can be replaced by a directory
This addresses FS#24904. In a normal upgrade case, this replacement
seems to work just fine. However, when doing a sync "replace" type
upgrade, we weren't properly handling this edge case due to path
comparison not ignoring trailing slashes. Fix this by pruning any
trailing slashes past a certain point of file conflict resolution where
we no longer need them, which allows us to safely detect cases such as
now tested in the new pactest.
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/pacman/tests/fileconflict008.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/pacman/tests/fileconflict008.py b/test/pacman/tests/fileconflict008.py new file mode 100644 index 00000000..24ea8852 --- /dev/null +++ b/test/pacman/tests/fileconflict008.py @@ -0,0 +1,21 @@ +self.description = "Fileconflict file -> dir on package replacement (FS#24904)" + +lp = pmpkg("dummy") +lp.files = ["dir/filepath", + "dir/file"] +self.addpkg2db("local", lp) + +p1 = pmpkg("replace") +p1.provides = ["dummy"] +p1.replaces = ["dummy"] +p1.files = ["dir/filepath/", + "dir/filepath/file", + "dir/file", + "dir/file2"] +self.addpkg2db("sync", p1) + +self.args = "-Su" + +self.addrule("PACMAN_RETCODE=0") +self.addrule("!PKG_EXIST=dummy") +self.addrule("PKG_EXIST=replace") |