summaryrefslogtreecommitdiffstats
path: root/pactest/pmrule.py
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2010-05-30 14:41:59 +1000
committerDan McGee <dan@archlinux.org>2010-06-02 13:14:51 -0500
commit844d82fad811626b0b8e54db60ee4b3ea32a3cb9 (patch)
treed6ae52c513db060b1f81227c34bfb366ea3fa58c /pactest/pmrule.py
parentccea1b55766200c1ab371cf0f3b38c4cebdb2063 (diff)
downloadpacman-844d82fad811626b0b8e54db60ee4b3ea32a3cb9.tar.xz
Move pacman test suite
Move the test suite to test/pacman in order to make a logical location for a future makepkg test suite. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'pactest/pmrule.py')
-rwxr-xr-xpactest/pmrule.py159
1 files changed, 0 insertions, 159 deletions
diff --git a/pactest/pmrule.py b/pactest/pmrule.py
deleted file mode 100755
index e7c9c44f..00000000
--- a/pactest/pmrule.py
+++ /dev/null
@@ -1,159 +0,0 @@
-#! /usr/bin/python
-#
-# Copyright (c) 2006 by Aurelien Foret <orelien@chez.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-import os
-from util import *
-from stat import *
-
-class pmrule:
- """Rule object
- """
-
- def __init__(self, rule):
- self.rule = rule
- self.false = 0
- self.result = 0
-
- def __str__(self):
- return "rule = %s" % self.rule
-
- def check(self, root, retcode, localdb, files):
- """
- """
-
- success = 1
-
- [test, args] = self.rule.split("=")
- if test[0] == "!":
- self.false = 1
- test = test.lstrip("!")
- [kind, case] = test.split("_")
- if "|" in args:
- [key, value] = args.split("|", 1)
- else:
- [key, value] = [args, None]
-
- if kind == "PACMAN":
- if case == "RETCODE":
- if retcode != int(key):
- success = 0
- elif case == "OUTPUT":
- logfile = os.path.join(root, LOGFILE)
- if not os.access(logfile, os.F_OK):
- print "LOGFILE not found, cannot validate 'OUTPUT' rule"
- success = 0
- elif not grep(os.path.join(root, LOGFILE), key):
- success = 0
- else:
- print "PACMAN rule '%s' not found" % case
- success = -1
- elif kind == "PKG":
- newpkg = localdb.db_read(key)
- if not newpkg:
- success = 0
- else:
- vprint("\tnewpkg.checksum : %s" % newpkg.checksum)
- vprint("\tnewpkg.mtime : %s" % newpkg.mtime)
- if case == "EXIST":
- success = 1
- elif case == "MODIFIED":
- if not localdb.ispkgmodified(newpkg):
- success = 0
- elif case == "VERSION":
- if value != newpkg.version:
- success = 0
- elif case == "GROUPS":
- if not value in newpkg.groups:
- success = 0
- elif case == "PROVIDES":
- if not value in newpkg.provides:
- success = 0
- elif case == "DEPENDS":
- if not value in newpkg.depends:
- success = 0
- elif case == "OPTDEPENDS":
- if not value in newpkg.optdepends:
- success = 0
- elif case == "REASON":
- if newpkg.reason != int(value):
- success = 0
- elif case == "FILES":
- if not value in newpkg.files:
- success = 0
- elif case == "BACKUP":
- found = 0
- for f in newpkg.backup:
- name, md5sum = f.split("\t")
- if value == name:
- found = 1
- if not found:
- success = 0
- else:
- print "PKG rule '%s' not found" % case
- success = -1
- elif kind == "FILE":
- filename = os.path.join(root, key)
- 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":
- if not os.path.isfile(filename):
- success = 0
- else:
- 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:
- print "FILE rule '%s' not found" % case
- success = -1
- else:
- print "Rule kind '%s' not found" % kind
- success = -1
-
- if self.false and success != -1:
- success = not success
- self.result = success
- return success
-
-
-if __name__ != "__main__":
- rule = pmrule("PKG_EXIST=dummy")
-# vim: set ts=4 sw=4 et: