pactest: only snapshot needed files

Only a few of our tests need file snapshots at all and most of them only
need a few files.  Taking snapshots of the entire test environment for
every single test is a massive waste.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Andrew Gregory 2014-08-01 14:19:45 -07:00 committed by Allan McRae
parent 32413ad44b
commit 85c80542a5
2 changed files with 17 additions and 6 deletions

View File

@ -32,6 +32,12 @@ def __init__(self, rule):
def __str__(self):
return self.rule
def snapshots_needed(self):
(testname, args) = self.rule.split("=")
if testname == "FILE_MODIFIED" or testname == "!FILE_MODIFIED":
return [args]
return []
def check(self, test):
"""
"""

View File

@ -183,12 +183,17 @@ def generate(self, pacman):
# Done.
vprint(" Taking a snapshot of the file system")
for roots, dirs, files in os.walk(self.root):
for i in files:
filename = os.path.join(roots, i)
f = pmfile.PacmanFile(self.root, filename.replace(self.root + "/", ""))
self.files.append(f)
vprint("\t%s" % f.name)
for filename in self.snapshots_needed():
f = pmfile.PacmanFile(self.root, filename)
self.files.append(f)
vprint("\t%s" % f.name)
def snapshots_needed(self):
files = set()
for r in self.rules:
files.update(r.snapshots_needed())
return files
def run(self, pacman):
if os.path.isfile(util.PM_LOCK):