These should all prevent installation, and yet two of the three tests currently fail. Not good. The best way to see what is going on here is to diff the three new tests side by side- there is only a small difference between the three tests, and that is in the destination of the symlink in question that should never be overwritten. symlink010.py: myprogsuffix -> myprog symlink011.py: myprogsuffix -> broken symlink012.py: myprogsuffix -> otherprog Signed-off-by: Dan McGee <dan@archlinux.org> --- For maint. test/pacman/tests/fileconflict007.py | 2 +- test/pacman/tests/symlink010.py | 26 ++++++++++++++++++++++++++ test/pacman/tests/symlink011.py | 26 ++++++++++++++++++++++++++ test/pacman/tests/symlink012.py | 24 ++++++++++++++++++++++++ 4 files changed, 77 insertions(+), 1 deletions(-) create mode 100644 test/pacman/tests/symlink010.py create mode 100644 test/pacman/tests/symlink011.py create mode 100644 test/pacman/tests/symlink012.py diff --git a/test/pacman/tests/fileconflict007.py b/test/pacman/tests/fileconflict007.py index 7e6d85e..4ee4624 100644 --- a/test/pacman/tests/fileconflict007.py +++ b/test/pacman/tests/fileconflict007.py @@ -3,7 +3,7 @@ lp = pmpkg("pkg") lp.files = ["dir/realdir/", "dir/symdir -> realdir", - "dir/realdir/file"] + "dir/realdir/file"] self.addpkg2db("local", lp) p = pmpkg("pkg", "1.0-2") diff --git a/test/pacman/tests/symlink010.py b/test/pacman/tests/symlink010.py new file mode 100644 index 0000000..8c80dbc --- /dev/null +++ b/test/pacman/tests/symlink010.py @@ -0,0 +1,26 @@ +self.description = "Unowned identical symlink pointing to file in package" + +lp = pmpkg("dummy") +lp.files = ["usr/bin/myprog"] +self.addpkg2db("local", lp) + +self.filesystem = ["usr/bin/otherprog", + "usr/bin/myprogsuffix -> myprog"] + +p = pmpkg("dummy", "1.0-2") +p.files = ["usr/bin/myprog", + "usr/bin/myprogsuffix -> myprog"] +self.addpkg(p) + +self.args = "-U %s" % p.filename() + +self.addrule("PACMAN_RETCODE=1") +self.addrule("PKG_VERSION=dummy|1.0-1") +self.addrule("FILE_EXIST=usr/bin/myprog") +self.addrule("LINK_EXIST=usr/bin/myprogsuffix") +self.addrule("FILE_EXIST=usr/bin/otherprog") +self.addrule("FILE_TYPE=usr/bin/myprog|file") +self.addrule("FILE_TYPE=usr/bin/myprogsuffix|link") +self.addrule("FILE_TYPE=usr/bin/otherprog|file") + +self.expectfailure = True diff --git a/test/pacman/tests/symlink011.py b/test/pacman/tests/symlink011.py new file mode 100644 index 0000000..8510172 --- /dev/null +++ b/test/pacman/tests/symlink011.py @@ -0,0 +1,26 @@ +self.description = "Unowned broken symlink replaced by one in package" + +lp = pmpkg("dummy") +lp.files = ["usr/bin/myprog"] +self.addpkg2db("local", lp) + +self.filesystem = ["usr/bin/otherprog", + "usr/bin/myprogsuffix -> broken"] + +p = pmpkg("dummy", "1.0-2") +p.files = ["usr/bin/myprog", + "usr/bin/myprogsuffix -> myprog"] +self.addpkg(p) + +self.args = "-U %s" % p.filename() + +self.addrule("PACMAN_RETCODE=1") +self.addrule("PKG_VERSION=dummy|1.0-1") +self.addrule("FILE_EXIST=usr/bin/myprog") +self.addrule("LINK_EXIST=usr/bin/myprogsuffix") +self.addrule("FILE_EXIST=usr/bin/otherprog") +self.addrule("FILE_TYPE=usr/bin/myprog|file") +self.addrule("FILE_TYPE=usr/bin/myprogsuffix|link") +self.addrule("FILE_TYPE=usr/bin/otherprog|file") + +self.expectfailure = True diff --git a/test/pacman/tests/symlink012.py b/test/pacman/tests/symlink012.py new file mode 100644 index 0000000..6a73bbb --- /dev/null +++ b/test/pacman/tests/symlink012.py @@ -0,0 +1,24 @@ +self.description = "Unowned symlink when pointing to different file" + +lp = pmpkg("dummy") +lp.files = ["usr/bin/myprog"] +self.addpkg2db("local", lp) + +self.filesystem = ["usr/bin/otherprog", + "usr/bin/myprogsuffix -> otherprog"] + +p = pmpkg("dummy", "1.0-2") +p.files = ["usr/bin/myprog", + "usr/bin/myprogsuffix -> myprog"] +self.addpkg(p) + +self.args = "-U %s" % p.filename() + +self.addrule("PACMAN_RETCODE=1") +self.addrule("PKG_VERSION=dummy|1.0-1") +self.addrule("FILE_EXIST=usr/bin/myprog") +self.addrule("LINK_EXIST=usr/bin/myprogsuffix") +self.addrule("FILE_EXIST=usr/bin/otherprog") +self.addrule("FILE_TYPE=usr/bin/myprog|file") +self.addrule("FILE_TYPE=usr/bin/myprogsuffix|link") +self.addrule("FILE_TYPE=usr/bin/otherprog|file") -- 1.7.7