diff options
Diffstat (limited to 'test')
-rwxr-xr-x | test/pacman/pactest.py | 1 | ||||
-rwxr-xr-x | test/pacman/pmpkg.py | 6 | ||||
-rwxr-xr-x | test/pacman/pmrule.py | 8 | ||||
-rw-r--r-- | test/pacman/tests/replace101.py | 25 | ||||
-rw-r--r-- | test/pacman/tests/replace102.py | 27 | ||||
-rw-r--r-- | test/pacman/tests/smoke002.py | 12 | ||||
-rw-r--r-- | test/pacman/tests/symlink002.py | 43 | ||||
-rwxr-xr-x | test/pacman/util.py | 6 |
8 files changed, 114 insertions, 14 deletions
diff --git a/test/pacman/pactest.py b/test/pacman/pactest.py index 64d56510..77f87da6 100755 --- a/test/pacman/pactest.py +++ b/test/pacman/pactest.py @@ -114,6 +114,7 @@ if __name__ == "__main__": env.results() if env.failed > 0: + print "pacman testing root saved: %s" % root_path sys.exit(1) if not opts.keeproot: diff --git a/test/pacman/pmpkg.py b/test/pacman/pmpkg.py index 59204265..4568adb9 100755 --- a/test/pacman/pmpkg.py +++ b/test/pacman/pmpkg.py @@ -63,7 +63,7 @@ class pmpkg(object): "pre_remove": "", "post_remove": "", "pre_upgrade": "", - "post_upgrade": "" + "post_upgrade": "", } def __str__(self): @@ -103,7 +103,7 @@ class pmpkg(object): # Generate package file system for f in self.files: util.mkfile(f, f) - self.size += os.stat(util.getfilename(f))[stat.ST_SIZE] + self.size += os.lstat(util.getfilename(f))[stat.ST_SIZE] # .PKGINFO data = ["pkgname = %s" % self.name] @@ -134,7 +134,7 @@ class pmpkg(object): util.mkfile(".PKGINFO", "\n".join(data)) # .INSTALL - if len(self.install.values()) > 0: + if any(self.install.values()): util.mkinstallfile(".INSTALL", self.install) # safely create the dir diff --git a/test/pacman/pmrule.py b/test/pacman/pmrule.py index c68d085e..0f6ae602 100755 --- a/test/pacman/pmrule.py +++ b/test/pacman/pmrule.py @@ -146,6 +146,14 @@ class pmrule(object): else: print "FILE rule '%s' not found" % case success = -1 + elif kind == "LINK": + filename = os.path.join(test.root, key) + if case == "EXIST": + if not os.path.islink(filename): + success = 0 + else: + print "LINK rule '%s' not found" % case + success = -1 elif kind == "CACHE": cachedir = os.path.join(test.root, util.PM_CACHEDIR) if case == "EXISTS": diff --git a/test/pacman/tests/replace101.py b/test/pacman/tests/replace101.py new file mode 100644 index 00000000..86c40ac6 --- /dev/null +++ b/test/pacman/tests/replace101.py @@ -0,0 +1,25 @@ +self.description = "Sysupgrade with a versioned replacement" + +sp1 = pmpkg("python2-yaml", "5-1") +sp1.replaces = ["python-yaml<5"] +sp1.conflicts = ["python-yaml<5"] +sp1.files = ["lib/python2/file"] +self.addpkg2db("sync", sp1) + +# the python3 version +sp2 = pmpkg("python-yaml", "5-1") +sp2.files = ["lib/python3/file"] +self.addpkg2db("sync", sp2) + +lp1 = pmpkg("python-yaml", "4-1") +lp1.files = ["lib/python2/file"] +self.addpkg2db("local", lp1) + +self.args = "-Su" + +self.addrule("PACMAN_RETCODE=0") +self.addrule("!PKG_EXIST=python-yaml") +self.addrule("PKG_VERSION=python2-yaml|5-1") +self.addrule("FILE_EXIST=lib/python2/file") + +self.expectfailure = True diff --git a/test/pacman/tests/replace102.py b/test/pacman/tests/replace102.py new file mode 100644 index 00000000..c6e2e5f0 --- /dev/null +++ b/test/pacman/tests/replace102.py @@ -0,0 +1,27 @@ +self.description = "Replace a package with a file in 'backup' (local modified)" +# FS#24543 + +lp = pmpkg("dummy") +lp.files = ["etc/dummy.conf*", "bin/dummy"] +lp.backup = ["etc/dummy.conf"] +self.addpkg2db("local", lp) + +sp = pmpkg("replacement") +sp.replaces = ["dummy"] +sp.files = ["etc/dummy.conf", "bin/dummy*"] +sp.backup = ["etc/dummy.conf"] +self.addpkg2db("sync", sp) + +self.args = "-Su" + +self.addrule("!PKG_EXIST=dummy") +self.addrule("PKG_EXIST=replacement") + +self.addrule("FILE_EXIST=etc/dummy.conf") +self.addrule("!FILE_MODIFIED=etc/dummy.conf") +self.addrule("!FILE_PACNEW=etc/dummy.conf") +self.addrule("!FILE_PACSAVE=etc/dummy.conf") + +self.addrule("FILE_EXIST=bin/dummy") + +self.expectfailure = True diff --git a/test/pacman/tests/smoke002.py b/test/pacman/tests/smoke002.py index 44f2d0ec..8ff5cab7 100644 --- a/test/pacman/tests/smoke002.py +++ b/test/pacman/tests/smoke002.py @@ -10,10 +10,8 @@ self.addpkg(p2) self.args = "-U %s %s" % (p1.filename(), p2.filename()) -# Note that the current cutoff on line length is 512K, so the first package -# will succeed while the second one will fail to record the description. -self.addrule("PACMAN_RETCODE=0") -self.addrule("PKG_EXIST=pkg1") -self.addrule("PKG_DESC=pkg1|%s" % p1.desc) -self.addrule("PKG_EXIST=pkg1") -self.addrule("!PKG_DESC=pkg1|%s" % p2.desc) +# We error out when fed a package with an invalid description; the second one +# fits the bill in this case as the desc is > 512K +self.addrule("PACMAN_RETCODE=1") +self.addrule("!PKG_EXIST=pkg1") +self.addrule("!PKG_EXIST=pkg1") diff --git a/test/pacman/tests/symlink002.py b/test/pacman/tests/symlink002.py new file mode 100644 index 00000000..6b7423d9 --- /dev/null +++ b/test/pacman/tests/symlink002.py @@ -0,0 +1,43 @@ +self.description = "Dead backed-up symlink when removing package (FS#24230)" + +# symlink file is changed +lp = pmpkg("dummy") +lp.files = ["etc/brokenlink -> nonexistent", + "etc/exists"] +lp.backup = ["etc/brokenlink*"] +self.addpkg2db("local", lp) + +# symlink file is not changed +lp2 = pmpkg("dummy2") +lp2.files = ["etc/brokenlink2 -> nonexistent2", + "etc/exists2"] +lp2.backup = ["etc/brokenlink2"] +self.addpkg2db("local", lp2) + +# package is left alone, not uninstalled +lp3 = pmpkg("dummy3") +lp3.files = ["etc/brokenlink3 -> nonexistent3", + "etc/exists3"] +self.addpkg2db("local", lp3) + +self.args = "-R %s %s" % (lp.name, lp2.name) +#self.args = "-R" + +self.addrule("PACMAN_RETCODE=0") + +self.addrule("!PKG_EXIST=dummy") +self.addrule("!LINK_EXIST=etc/brokenlink") +self.addrule("!FILE_EXIST=etc/nonexistent") +self.addrule("!FILE_EXIST=etc/exists") + +self.addrule("!PKG_EXIST=dummy2") +self.addrule("!LINK_EXIST=etc/brokenlink2") +self.addrule("!FILE_EXIST=etc/nonexistent2") +self.addrule("!FILE_EXIST=etc/exists2") + +self.addrule("PKG_EXIST=dummy3") +self.addrule("LINK_EXIST=etc/brokenlink3") +self.addrule("!FILE_EXIST=etc/nonexistent") +self.addrule("FILE_EXIST=etc/exists3") +self.addrule("FILE_TYPE=etc/brokenlink3|link") +self.addrule("FILE_TYPE=etc/exists3|file") diff --git a/test/pacman/util.py b/test/pacman/util.py index 47255923..ddd955a2 100755 --- a/test/pacman/util.py +++ b/test/pacman/util.py @@ -150,7 +150,6 @@ def getmd5sum(filename): """ """ if not os.path.isfile(filename): - print "file %s does not exist!" % filename return "" fd = open(filename, "rb") checksum = hashlib.md5() @@ -178,9 +177,8 @@ def getmtime(filename): """ """ if not os.path.exists(filename): - print "path %s does not exist!" % filename - return 0, 0, 0 - st = os.stat(filename) + return None, None, None + st = os.lstat(filename) return st[stat.ST_ATIME], st[stat.ST_MTIME], st[stat.ST_CTIME] # |