summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpactest/pmrule.py45
-rw-r--r--pactest/tests/mode001.py12
-rw-r--r--pactest/tests/type001.py13
3 files changed, 54 insertions, 16 deletions
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
diff --git a/pactest/tests/mode001.py b/pactest/tests/mode001.py
new file mode 100644
index 00000000..ff245a2c
--- /dev/null
+++ b/pactest/tests/mode001.py
@@ -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)
diff --git a/pactest/tests/type001.py b/pactest/tests/type001.py
new file mode 100644
index 00000000..f119f14f
--- /dev/null
+++ b/pactest/tests/type001.py
@@ -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")