]> rtime.felk.cvut.cz Git - omk.git/commitdiff
Let tester return non-zero error code when some testcase fails
authorMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 10 Jul 2009 16:13:23 +0000 (18:13 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Fri, 10 Jul 2009 16:13:23 +0000 (18:13 +0200)
This could be used to make testing really automatic.

tests/Makefile
tests/tester.py

index b4f9e68ed1bbcbddd9bb7222bf5d7c72929eee2d..2396a8d3c3358bff3f05e8c361392b5306df07ff 100644 (file)
@@ -2,4 +2,4 @@
 all:
        $(MAKE) -C ..
        find -name 'runtest*' -a ! -name '*.rules' -print0|xargs -0 chmod +x
-       python tester.py
+       python tester.py || true
index bd849692eaceabd63e50911a3632ff90fb56398b..85f1eae799e76936c5f96fd940a6c404b49dfdc5 100755 (executable)
@@ -282,11 +282,13 @@ class TestCase:
         self.results = TestCaseResult(self)
         print "Testing %s:\n" % self.name,
         os.chdir(os.path.join(testsRoot, self.directory))
+        # Chose how to run the test - currently there is only one option
 #         if os.path.exists("Makefile.test"):
 #             self._exec = self._execMake
         if os.path.exists(self.executable):
             self._exec = self._execRuntest
         else: return
+        self.failed = False
         for rules in self.rules:
             resultEntry = ResultEntry(self.name, rules)
             self.results[rules] = resultEntry
@@ -346,12 +348,15 @@ class TestCase:
         ret = self._exec(log)
         if log.canttest: retstr = "--"
         elif ret == 0: retstr = "OK"
-        else: retstr = "FAILED"
+        else:
+            retstr = "FAILED"
+            self.failed = True
         print "%*s%s" % (20-len(os.environ['OMK_RULES']), "", retstr)
 
 
 results = Results()
 
+failed = False;
 for dirpath, dirnames, filenames in os.walk(invokeDir):
     executables = fnmatch.filter(filenames, "runtest*")
     if not executables: continue
@@ -360,12 +365,15 @@ for dirpath, dirnames, filenames in os.walk(invokeDir):
         if re.search(".rules$", exe): continue
         t = TestCase(dirpath, exe)
         t.run()
+        if t.failed: failed = True
         results[t.name] = t.results
 
 os.chdir(invokeDir)
 results.genStats()
 results.save()
 
+sys.exit(failed)
+
 # Local Variables:
 # compile-command: "python tester.py"
 # End: