pactest: pylint changes for pmtest
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
d94346ede2
commit
ff96649eeb
3 changed files with 44 additions and 40 deletions
|
@ -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):
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue