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>
This commit is contained in:
Dan McGee 2011-05-16 11:08:32 -05:00
parent ac6f6b317a
commit 3000b6b473
3 changed files with 11 additions and 5 deletions

View File

@ -102,7 +102,7 @@ def makepkg(self, path):
# 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]

View File

@ -146,6 +146,14 @@ def check(self, test):
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":

View File

@ -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]
#