]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
regrtest: display test result (passed, failed, ...)
authorVictor Stinner <victor.stinner@gmail.com>
Fri, 20 May 2016 11:37:40 +0000 (13:37 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Fri, 20 May 2016 11:37:40 +0000 (13:37 +0200)
* in multiprocessing mode: always display the result
* sequential mode: only display the result if the test did not pass

Lib/test/libregrtest/main.py
Lib/test/libregrtest/runtest.py
Lib/test/libregrtest/runtest_mp.py

index 447d99f88ab6c40736f9a1f036b184afe30670bc..e503c131acc13258d303008a115abe4325538a16 100644 (file)
@@ -15,7 +15,7 @@ from test.libregrtest.runtest import (
     findtests, runtest,
     STDTESTS, NOTTESTS, PASSED, FAILED, ENV_CHANGED, SKIPPED, RESOURCE_DENIED,
     INTERRUPTED, CHILD_ERROR,
-    PROGRESS_MIN_TIME)
+    PROGRESS_MIN_TIME, format_test_result)
 from test.libregrtest.setup import setup_tests
 from test import support
 try:
@@ -326,7 +326,9 @@ class Regrtest:
                 # if on a false return value from main.
                 cmd = ('result = runtest(self.ns, test); '
                        'self.accumulate_result(test, result)')
-                self.tracer.runctx(cmd, globals=globals(), locals=vars())
+                ns = dict(locals())
+                self.tracer.runctx(cmd, globals=globals(), locals=ns)
+                result = ns['result']
             else:
                 try:
                     result = runtest(self.ns, test)
@@ -337,10 +339,12 @@ class Regrtest:
                 else:
                     self.accumulate_result(test, result)
 
+            previous_test = format_test_result(test, result[0])
             test_time = time.monotonic() - start_time
             if test_time >= PROGRESS_MIN_TIME:
-                previous_test = '%s took %.0f sec' % (test, test_time)
-            else:
+                previous_test = "%s in %.0f sec" % (previous_test, test_time)
+            elif result[0] == PASSED:
+                # be quiet: say nothing if the test passed shortly
                 previous_test = None
 
             if self.ns.findleaks:
index 601f2b26ecfa07faf409f43b2ce8bfbc83ed7e82..ef1feb738a0ac6e743b58cc8b9e8ff0a7bd32dfc 100644 (file)
@@ -20,12 +20,20 @@ RESOURCE_DENIED = -3
 INTERRUPTED = -4
 CHILD_ERROR = -5   # error in a child process
 
+_FORMAT_TEST_RESULT = {
+    PASSED: '%s passed',
+    FAILED: '%s failed',
+    ENV_CHANGED: '%s failed (env changed)',
+    SKIPPED: '%s skipped',
+    RESOURCE_DENIED: '%s skipped (resource denied)',
+    INTERRUPTED: '%s interrupted',
+    CHILD_ERROR: '%s crashed',
+}
+
 # Minimum duration of a test to display its duration or to mention that
 # the test is running in background
 PROGRESS_MIN_TIME = 30.0   # seconds
 
-
-
 # small set of tests to determine if we have a basically functioning interpreter
 # (i.e. if any of these fail, then anything else is likely to follow)
 STDTESTS = [
@@ -45,6 +53,11 @@ STDTESTS = [
 NOTTESTS = set()
 
 
+def format_test_result(test_name, result):
+    fmt = _FORMAT_TEST_RESULT.get(result, "%s")
+    return fmt % test_name
+
+
 def findtests(testdir=None, stdtests=STDTESTS, nottests=NOTTESTS):
     """Return a list of all applicable test modules."""
     testdir = findtestdir(testdir)
index 33f632d47a748437de896c8cd17a6fe288927724..9604c166009fe99b37659f3a24fe75d205df252f 100644 (file)
@@ -14,7 +14,8 @@ except ImportError:
     sys.exit(2)
 
 from test.libregrtest.runtest import (
-    runtest, INTERRUPTED, CHILD_ERROR, PROGRESS_MIN_TIME)
+    runtest, INTERRUPTED, CHILD_ERROR, PROGRESS_MIN_TIME,
+    format_test_result)
 from test.libregrtest.setup import setup_tests
 
 
@@ -196,8 +197,8 @@ def run_tests_multiprocess(regrtest):
             regrtest.accumulate_result(test, result)
 
             # Display progress
-            text = test
             ok, test_time = result
+            text = format_test_result(test, ok)
             if (ok not in (CHILD_ERROR, INTERRUPTED)
                 and test_time >= PROGRESS_MIN_TIME
                 and not regrtest.ns.pgo):