X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/aa8964354bc97cfdc7b6d51e560b9c0aacfd7243..95ceb9eae3ff08162d7e17be5ce82090d78cb269:/tests/alltests diff --git a/tests/alltests b/tests/alltests index 884a870..812b53a 100755 --- a/tests/alltests +++ b/tests/alltests @@ -18,17 +18,46 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA # -import dtest,sys +import sys,re,os.path,os -tests = ["nothing", "version"] +# Parse the makefile in the current directory to identify the source directory +top_srcdir = None +for l in file("Makefile"): + r = re.search("^top_srcdir *= *(.*)$", l) + if r: + top_srcdir = r.group(1) + break +if not top_srcdir: + fatal("cannot identify source directory") + +# Make sure that the test directory is on the module search path (so we can +# find dtest and the tests themselves) +testdir = os.path.join(top_srcdir, "tests") +sys.path.insert(0, testdir) +import dtest + +# The tests are all the *.py files in the test source directory that +# call dtest.run +tests = [] +for f in os.listdir(testdir): + if f == 'dtest.py': # special case + continue + r = re.search("^(.*)\\.py$", f) + if r is not None: + isTest = False + base = r.group(1) + for l in file(os.path.join(testdir, f)): + r = re.search("dtest\\.run", l) + if r is not None: + isTest = True + break + if isTest: + tests.append(base) +tests.sort() # let's have a consistent order for test in tests: - print "Test '%s'" % test - m = __import__(test) - dtest.run(getattr(m, "test"), - setup=getattr(m, "setup", None), - report=False, - name=test) + print "-------- Test '%s' --------" % test + dtest.run(test, report=False) print "%d tests" % dtest.tests if dtest.failures: