From 19f66083f0aef92af84761fd62245270e97c6f33 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 1 Jul 2007 20:03:15 -0400 Subject: 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 --- pactest/pmrule.py | 45 +++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 16 deletions(-) (limited to 'pactest/pmrule.py') diff --git a/pactest/pmrule.py b/pactest/pmrule.py index 886ac545..d5d0f561 100755 --- a/pactest/pmrule.py +++ b/pactest/pmrule.py @@ -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 - 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)): + 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 case == "PACORIG": - if not os.path.isfile("%s%s" % (filename, PM_PACORIG)): + elif value == "file": + if not os.path.isfile(filename): success = 0 - elif case == "PACSAVE": - if not os.path.isfile("%s%s" % (filename, PM_PACSAVE)): + elif value == "link": + if not os.path.islink(filename): success = 0 - else: - print "FILE rule '%s' not found" % case - success = -1 + 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 else: print "Rule kind '%s' not found" % kind success = -1 -- cgit v1.2.3