diff options
author | Dan McGee <dan@archlinux.org> | 2011-05-16 18:08:32 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-05-16 18:31:26 +0200 |
commit | 3000b6b473422dca3670c922c24d0e15e963281a (patch) | |
tree | 2310d5b9574d2f6906bbddb446179edbfbb54e68 | |
parent | ac6f6b317ae4bb7adf5ea08fbad6a75f024ff75a (diff) | |
download | pacman-3000b6b473422dca3670c922c24d0e15e963281a.tar.gz pacman-3000b6b473422dca3670c922c24d0e15e963281a.tar.xz |
pactest: treat symlinks with more respect
Don't call os.stat() when we should be using os.lstat(); this allows us
to actually test dead symlinks that don't have a corresponding file. Add
a new LINK_EXIST rule that complements FILE_EXIST for a similar purpose.
Signed-off-by: Dan McGee <dan@archlinux.org>
-rwxr-xr-x | test/pacman/pmpkg.py | 2 | ||||
-rwxr-xr-x | test/pacman/pmrule.py | 8 | ||||
-rwxr-xr-x | test/pacman/util.py | 6 |
3 files changed, 11 insertions, 5 deletions
diff --git a/test/pacman/pmpkg.py b/test/pacman/pmpkg.py index 73156ab2..be177f35 100755 --- a/test/pacman/pmpkg.py +++ b/test/pacman/pmpkg.py @@ -102,7 +102,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] 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/util.py b/test/pacman/util.py index b771a345..47fde310 100755 --- a/test/pacman/util.py +++ b/test/pacman/util.py @@ -149,7 +149,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() @@ -177,9 +176,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] # |