X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/3bfecfac3fadac2fbf945d950a557292e8efb73a..95ceb9eae3ff08162d7e17be5ce82090d78cb269:/tests/alltests diff --git a/tests/alltests b/tests/alltests index 0d216f3..812b53a 100755 --- a/tests/alltests +++ b/tests/alltests @@ -18,12 +18,12 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA # -import sys,re,os.path +import sys,re,os.path,os # Parse the makefile in the current directory to identify the source directory top_srcdir = None for l in file("Makefile"): - r = re.match("top_srcdir *= *(.*)", l) + r = re.search("^top_srcdir *= *(.*)$", l) if r: top_srcdir = r.group(1) break @@ -32,18 +32,32 @@ if not top_srcdir: # Make sure that the test directory is on the module search path (so we can # find dtest and the tests themselves) -sys.path.insert(0, os.path.join(top_srcdir, "tests")) +testdir = os.path.join(top_srcdir, "tests") +sys.path.insert(0, testdir) import dtest -tests = ["nothing", "version"] +# 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: