1
0
mirror of https://github.com/moparisthebest/pacman synced 2025-02-28 09:21:53 -05:00

Add mode and type checking to pactest for files

Add the ability to check the permissions and type of a file within the
framework of pactest. Two new rules can be used:

self.addrule("FILE_TYPE=bin/foo|file")
self.addrule("FILE_MODE=bin/bar|644")

TODO: add the ability to add different types of files (eg links) via the test
package building framework, and add the ability to change the modes on files.

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2007-07-01 20:03:15 -04:00
parent d70116bfbc
commit 19f66083f0
3 changed files with 56 additions and 18 deletions

View File

@ -19,7 +19,7 @@
from util import *
from stat import *
class pmrule:
"""Rule object
@ -108,24 +108,37 @@ class pmrule:
if case == "EXIST":
if not os.path.isfile(filename):
success = 0
elif case == "MODIFIED":
for f in files:
if f.name == key:
if not f.ismodified():
success = 0
elif case == "MODE":
mode = os.lstat(filename)[ST_MODE]
if int(value,8) != S_IMODE(mode):
success = 0
elif case == "TYPE":
if value == "dir":
if not os.path.isdir(filename):
success = 0
elif value == "file":
if not os.path.isfile(filename):
success = 0
elif value == "link":
if not os.path.islink(filename):
success = 0
elif case == "PACNEW":
if not os.path.isfile("%s%s" % (filename, PM_PACNEW)):
success = 0
elif case == "PACORIG":
if not os.path.isfile("%s%s" % (filename, PM_PACORIG)):
success = 0
elif case == "PACSAVE":
if not os.path.isfile("%s%s" % (filename, PM_PACSAVE)):
success = 0
else:
if case == "MODIFIED":
for f in files:
if f.name == key:
if not f.ismodified():
success = 0
elif case == "PACNEW":
if not os.path.isfile("%s%s" % (filename, PM_PACNEW)):
success = 0
elif case == "PACORIG":
if not os.path.isfile("%s%s" % (filename, PM_PACORIG)):
success = 0
elif case == "PACSAVE":
if not os.path.isfile("%s%s" % (filename, PM_PACSAVE)):
success = 0
else:
print "FILE rule '%s' not found" % case
success = -1
print "FILE rule '%s' not found" % case
success = -1
else:
print "Rule kind '%s' not found" % kind
success = -1

12
pactest/tests/mode001.py Normal file
View File

@ -0,0 +1,12 @@
self.description = "Check the mode of default files in a package"
p = pmpkg("pkg1")
p.files = ["bin/foo"
"bin/bar"]
self.addpkg(p)
self.args = "-U %s" % p.filename()
self.addrule("PACMAN_RETCODE=0")
for f in p.files:
self.addrule("FILE_MODE=%s|644" % f)

13
pactest/tests/type001.py Normal file
View File

@ -0,0 +1,13 @@
self.description = "Check the types of default files in a package"
p = pmpkg("pkg1")
p.files = ["bin/foo"
"bin/bar"]
self.addpkg(p)
self.args = "-U %s" % p.filename()
self.addrule("PACMAN_RETCODE=0")
for f in p.files:
self.addrule("FILE_TYPE=%s|file" % f)
self.addrule("FILE_TYPE=bin/|dir")