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:
parent
d70116bfbc
commit
19f66083f0
@ -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
12
pactest/tests/mode001.py
Normal 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
13
pactest/tests/type001.py
Normal 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")
|
Loading…
x
Reference in New Issue
Block a user