diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2012-03-04 04:16:16 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2012-03-04 18:02:07 +0100 |
commit | a50def839c9ead7f05ea90c093a64794f79ed243 (patch) | |
tree | e88b304fa53ffffa7299981671e10b120f772c4c /selftest/testlist.py | |
parent | 616139c01e03799f2cb047f78c60d3afc004d15e (diff) | |
download | samba-a50def839c9ead7f05ea90c093a64794f79ed243.tar.gz samba-a50def839c9ead7f05ea90c093a64794f79ed243.tar.bz2 samba-a50def839c9ead7f05ea90c093a64794f79ed243.zip |
selftest.testlist: Add manager for restricted test lists.
Diffstat (limited to 'selftest/testlist.py')
-rw-r--r-- | selftest/testlist.py | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/selftest/testlist.py b/selftest/testlist.py index bc88f9d0c0..276b51b812 100644 --- a/selftest/testlist.py +++ b/selftest/testlist.py @@ -22,7 +22,6 @@ __all__ = ['find_in_list', 'read_test_regexes', 'read_testlist'] import re -import sys def find_in_list(list, fullname): """Find test in list. @@ -87,14 +86,30 @@ def read_testlist(inf, outf): outf.write(l) -class TestListFilter(object): - """Interface for something that can filter a test list.""" +def read_restricted_test_list(f): + for l in f.readlines(): + yield l.strip() - def should_run_testsuite(self, name): - """Whether to run a specific testsuite. - :param name: Name of the testsuite - :return: List of tests to run. None means run the whole testsuite. - Return an empty list to not run this testsuite - """ - raise NotImplementedError(self.should_run_testsuite) +class RestrictedTestManager(object): + + def __init__(self, test_list): + self.test_list = test_list + self.unused = set(self.test_list) + + def should_run_testsuite(self, name): + match = [] + for r in self.test_list: + if r == name: + match = None + if r in self.unused: + self.unused.remove(r) + elif r.startswith(name + "."): + if match is not None: + match.append(r[len(name+"."):]) + if r in self.unused: + self.unused.remove(r) + return match + + def iter_unused(self): + return iter(self.unused) |