pactest: pylint changes for pmtest

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2010-10-26 21:46:04 -05:00
parent d94346ede2
commit ff96649eeb
3 changed files with 44 additions and 40 deletions

View file

@ -19,14 +19,14 @@
import os import os
import os.path import os.path
import shutil import shutil
import stat
import time import time
import pmrule import pmrule
import pmdb import pmdb
import pmfile import pmfile
from pmpkg import pmpkg import util
from util import * from util import vprint
class pmtest: class pmtest:
"""Test object """Test object
@ -87,9 +87,11 @@ class pmtest:
self.expectfailure = False self.expectfailure = False
if os.path.isfile(self.name): if os.path.isfile(self.name):
# all tests expect this to be available
from pmpkg import pmpkg
execfile(self.name) execfile(self.name)
else: else:
raise IOerror("file %s does not exist!" % self.name) raise IOError("file %s does not exist!" % self.name)
def generate(self): def generate(self):
""" """
@ -104,39 +106,40 @@ class pmtest:
# Create directory structure # Create directory structure
vprint(" Creating directory structure:") vprint(" Creating directory structure:")
dbdir = os.path.join(self.root, PM_DBPATH) dbdir = os.path.join(self.root, util.PM_DBPATH)
cachedir = os.path.join(self.root, PM_CACHEDIR) cachedir = os.path.join(self.root, util.PM_CACHEDIR)
syncdir = os.path.join(self.root, SYNCREPO) syncdir = os.path.join(self.root, util.SYNCREPO)
tmpdir = os.path.join(self.root, TMPDIR) tmpdir = os.path.join(self.root, util.TMPDIR)
logdir = os.path.join(self.root, os.path.dirname(LOGFILE)) logdir = os.path.join(self.root, os.path.dirname(util.LOGFILE))
etcdir = os.path.join(self.root, os.path.dirname(PACCONF)) etcdir = os.path.join(self.root, os.path.dirname(util.PACCONF))
bindir = os.path.join(self.root, "bin") bindir = os.path.join(self.root, "bin")
for dir in [dbdir, cachedir, syncdir, tmpdir, logdir, etcdir, bindir]: sys_dirs = [dbdir, cachedir, syncdir, tmpdir, logdir, etcdir, bindir]
if not os.path.isdir(dir): for sys_dir in sys_dirs:
vprint("\t%s" % dir[len(self.root)+1:]) if not os.path.isdir(sys_dir):
os.makedirs(dir, 0755) vprint("\t%s" % sys_dir[len(self.root)+1:])
os.makedirs(sys_dir, 0755)
# Only the dynamically linked binary is needed for fakechroot # Only the dynamically linked binary is needed for fakechroot
shutil.copy("/bin/sh", bindir) shutil.copy("/bin/sh", bindir)
# Configuration file # Configuration file
vprint(" Creating configuration file") vprint(" Creating configuration file")
vprint("\t%s" % PACCONF) util.mkcfgfile(util.PACCONF, self.root, self.option, self.db)
mkcfgfile(PACCONF, self.root, self.option, self.db)
# Creating packages # Creating packages
vprint(" Creating package archives") vprint(" Creating package archives")
for pkg in self.localpkgs: for pkg in self.localpkgs:
vprint("\t%s" % os.path.join(TMPDIR, pkg.filename())) vprint("\t%s" % os.path.join(util.TMPDIR, pkg.filename()))
pkg.makepkg(tmpdir) pkg.makepkg(tmpdir)
for key, value in self.db.iteritems(): for key, value in self.db.iteritems():
if key == "local": continue if key == "local":
continue
for pkg in value.pkgs: for pkg in value.pkgs:
vprint("\t%s" % os.path.join(PM_CACHEDIR, pkg.filename())) vprint("\t%s" % os.path.join(util.PM_CACHEDIR, pkg.filename()))
if self.cachepkgs: if self.cachepkgs:
pkg.makepkg(cachedir) pkg.makepkg(cachedir)
else: else:
pkg.makepkg(os.path.join(syncdir, value.treename)) pkg.makepkg(os.path.join(syncdir, value.treename))
pkg.md5sum = getmd5sum(pkg.path) pkg.md5sum = util.getmd5sum(pkg.path)
pkg.csize = os.stat(pkg.path)[stat.ST_SIZE] pkg.csize = os.stat(pkg.path)[stat.ST_SIZE]
# Populating databases # Populating databases
@ -151,11 +154,12 @@ class pmtest:
# Creating sync database archives # Creating sync database archives
vprint(" Creating sync database archives") vprint(" Creating sync database archives")
for key, value in self.db.iteritems(): for key, value in self.db.iteritems():
if key == "local": continue if key == "local":
continue
vprint("\t" + value.treename) vprint("\t" + value.treename)
value.gensync() value.gensync()
serverpath = os.path.join(syncdir, value.treename) serverpath = os.path.join(syncdir, value.treename)
mkdir(serverpath) util.mkdir(serverpath)
shutil.copy(value.dbfile, serverpath) shutil.copy(value.dbfile, serverpath)
# Filesystem # Filesystem
@ -165,7 +169,7 @@ class pmtest:
pkg.install_files(self.root) pkg.install_files(self.root)
for f in self.filesystem: for f in self.filesystem:
vprint("\t%s" % f) vprint("\t%s" % f)
mkfile(os.path.join(self.root, f), f) util.mkfile(os.path.join(self.root, f), f)
# Done. # Done.
vprint(" Taking a snapshot of the file system") vprint(" Taking a snapshot of the file system")
@ -180,7 +184,7 @@ class pmtest:
""" """
""" """
if os.path.isfile(PM_LOCK): if os.path.isfile(util.PM_LOCK):
print "\tERROR: another pacman session is on-going -- skipping" print "\tERROR: another pacman session is on-going -- skipping"
return return
@ -189,13 +193,13 @@ class pmtest:
cmd = [""] cmd = [""]
if os.geteuid() != 0: if os.geteuid() != 0:
fakeroot = which("fakeroot") fakeroot = util.which("fakeroot")
if not fakeroot: if not fakeroot:
print "WARNING: fakeroot not found!" print "WARNING: fakeroot not found!"
else: else:
cmd.append("fakeroot") cmd.append("fakeroot")
fakechroot = which("fakechroot") fakechroot = util.which("fakechroot")
if fakechroot: if fakechroot:
cmd.append("fakechroot") cmd.append("fakechroot")
@ -205,29 +209,29 @@ class pmtest:
cmd.append("valgrind -q --tool=memcheck --leak-check=full --show-reachable=yes --suppressions=%s/valgrind.supp" % os.getcwd()) cmd.append("valgrind -q --tool=memcheck --leak-check=full --show-reachable=yes --suppressions=%s/valgrind.supp" % os.getcwd())
cmd.append("\"%s\" --config=\"%s\" --root=\"%s\" --dbpath=\"%s\" --cachedir=\"%s\"" \ cmd.append("\"%s\" --config=\"%s\" --root=\"%s\" --dbpath=\"%s\" --cachedir=\"%s\"" \
% (pacman["bin"], % (pacman["bin"],
os.path.join(self.root, PACCONF), os.path.join(self.root, util.PACCONF),
self.root, self.root,
os.path.join(self.root, PM_DBPATH), os.path.join(self.root, util.PM_DBPATH),
os.path.join(self.root, PM_CACHEDIR))) os.path.join(self.root, util.PM_CACHEDIR)))
if not pacman["manual-confirm"]: if not pacman["manual-confirm"]:
cmd.append("--noconfirm") cmd.append("--noconfirm")
if pacman["debug"]: if pacman["debug"]:
cmd.append("--debug=%s" % pacman["debug"]) cmd.append("--debug=%s" % pacman["debug"])
cmd.append("%s" % self.args) cmd.append("%s" % self.args)
if not pacman["gdb"] and not pacman["valgrind"] and not pacman["nolog"]: if not pacman["gdb"] and not pacman["valgrind"] and not pacman["nolog"]:
cmd.append(">\"%s\" 2>&1" % os.path.join(self.root, LOGFILE)) cmd.append(">\"%s\" 2>&1" % os.path.join(self.root, util.LOGFILE))
vprint("\trunning: %s" % " ".join(cmd)) vprint("\trunning: %s" % " ".join(cmd))
# Change to the tmp dir before running pacman, so that local package # Change to the tmp dir before running pacman, so that local package
# archives are made available more easily. # archives are made available more easily.
curdir = os.getcwd() curdir = os.getcwd()
tmpdir = os.path.join(self.root, TMPDIR) tmpdir = os.path.join(self.root, util.TMPDIR)
os.chdir(tmpdir) os.chdir(tmpdir)
t0 = time.time() time_start = time.time()
self.retcode = os.system(" ".join(cmd)) self.retcode = os.system(" ".join(cmd))
t1 = time.time() time_end = time.time()
vprint("\ttime elapsed: %ds" % (t1-t0)) vprint("\ttime elapsed: %ds" % (time_end - time_start))
if self.retcode == None: if self.retcode == None:
self.retcode = 0 self.retcode = 0
@ -237,11 +241,11 @@ class pmtest:
os.chdir(curdir) os.chdir(curdir)
# Check if the lock is still there # Check if the lock is still there
if os.path.isfile(PM_LOCK): if os.path.isfile(util.PM_LOCK):
print "\tERROR: %s not removed" % PM_LOCK print "\tERROR: %s not removed" % util.PM_LOCK
os.unlink(PM_LOCK) os.unlink(util.PM_LOCK)
# Look for a core file # Look for a core file
if os.path.isfile(os.path.join(self.root, TMPDIR, "core")): if os.path.isfile(os.path.join(self.root, util.TMPDIR, "core")):
print "\tERROR: pacman dumped a core file" print "\tERROR: pacman dumped a core file"
def check(self): def check(self):

View file

@ -15,6 +15,6 @@ self.addrule("PACMAN_RETCODE=0")
self.addrule("PACMAN_OUTPUT=" + pre) self.addrule("PACMAN_OUTPUT=" + pre)
self.addrule("PACMAN_OUTPUT=" + post) self.addrule("PACMAN_OUTPUT=" + post)
fakechroot = which("fakechroot") fakechroot = util.which("fakechroot")
if not fakechroot: if not fakechroot:
self.expectfailure = True self.expectfailure = True

View file

@ -15,6 +15,6 @@ self.addrule("PACMAN_RETCODE=0")
self.addrule("PACMAN_OUTPUT=" + pre) self.addrule("PACMAN_OUTPUT=" + pre)
self.addrule("PACMAN_OUTPUT=" + post) self.addrule("PACMAN_OUTPUT=" + post)
fakechroot = which("fakechroot") fakechroot = util.which("fakechroot")
if not fakechroot: if not fakechroot:
self.expectfailure = True self.expectfailure = True