]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-108834: regrtest --fail-rerun exits with code 5 (#108896)
authorVictor Stinner <vstinner@python.org>
Tue, 5 Sep 2023 01:09:42 +0000 (03:09 +0200)
committerGitHub <noreply@github.com>
Tue, 5 Sep 2023 01:09:42 +0000 (01:09 +0000)
When the --fail-rerun option is used and a test fails and then pass,
regrtest now uses exit code 5 ("rerun) instead of 2 ("bad test").

Lib/test/libregrtest/main.py
Lib/test/test_regrtest.py

index 77a4090a826e069b0fc34791d06d269374cb3331..ab03647ca5802fd68c104e409f9b760150a51cb5 100644 (file)
@@ -29,9 +29,10 @@ from test.support import threading_helper
 EXIT_TIMEOUT = 120.0
 
 EXITCODE_BAD_TEST = 2
-EXITCODE_INTERRUPTED = 130
 EXITCODE_ENV_CHANGED = 3
 EXITCODE_NO_TESTS_RAN = 4
+EXITCODE_RERUN_FAIL = 5
+EXITCODE_INTERRUPTED = 130
 
 
 class Regrtest:
@@ -847,7 +848,7 @@ class Regrtest:
         elif self.no_tests_run():
             exitcode = EXITCODE_NO_TESTS_RAN
         elif self.rerun and self.ns.fail_rerun:
-            exitcode = EXITCODE_BAD_TEST
+            exitcode = EXITCODE_RERUN_FAIL
         return exitcode
 
     def action_run_tests(self):
index eb321c4ca05f1a839eb9ba97cb16905e8bf08017..c5fb3dc9a11950783643a8bd9af9eb442605968b 100644 (file)
@@ -34,6 +34,7 @@ LOG_PREFIX = r'[0-9]+:[0-9]+:[0-9]+ (?:load avg: [0-9]+\.[0-9]{2} )?'
 EXITCODE_BAD_TEST = 2
 EXITCODE_ENV_CHANGED = 3
 EXITCODE_NO_TESTS_RAN = 4
+EXITCODE_RERUN_FAIL = 5
 EXITCODE_INTERRUPTED = 130
 
 TEST_INTERRUPTED = textwrap.dedent("""
@@ -1265,10 +1266,10 @@ class ArgsTestCase(BaseTestCase):
                                   stats=TestStats(3, 1))
         os_helper.unlink(marker_filename)
 
-        # with --fail-rerun, exit code EXITCODE_BAD_TEST
+        # with --fail-rerun, exit code EXITCODE_RERUN_FAIL
         # on "FAILURE then SUCCESS" state.
         output = self.run_tests("--rerun", "--fail-rerun", testname,
-                                exitcode=EXITCODE_BAD_TEST)
+                                exitcode=EXITCODE_RERUN_FAIL)
         self.check_executed_tests(output, [testname],
                                   rerun=Rerun(testname,
                                               match="test_fail_once",