30 lines
1.3 KiB
Diff
30 lines
1.3 KiB
Diff
Subject: [PATCH] tests: count replacements when checking the worker restart limit
|
|
|
|
With two workers, another in-flight test may crash after the fourth
|
|
crash requests shutdown. Either four or five failed tests is valid.
|
|
Require exactly three replacements and the failed-tests exit status,
|
|
while preserving the queued-work and no-internal-error assertions.
|
|
|
|
--- a/testing/acceptance_test.py
|
|
+++ b/testing/acceptance_test.py
|
|
@@ -1011,9 +1011,18 @@
|
|
"worker*crashed while running*",
|
|
"worker*crashed while running*",
|
|
"* xdist: maximum crashed workers reached: 3 *",
|
|
- "* 4 failed in *",
|
|
]
|
|
)
|
|
+ # A second in-flight test may crash after shutdown is requested.
|
|
+ # The restart limit constrains replacements, not concurrent failures.
|
|
+ replacements = sum(
|
|
+ line.startswith("replacing crashed worker ") for line in res.stdout.lines
|
|
+ )
|
|
+ assert replacements == 3
|
|
+ failed = res.parseoutcomes()["failed"]
|
|
+ assert failed in (4, 5)
|
|
+ res.assert_outcomes(failed=failed)
|
|
+ assert res.ret == pytest.ExitCode.TESTS_FAILED
|
|
assert "INTERNALERROR" not in res.stdout.str()
|
|
|
|
def test_max_worker_restart_die(self, pytester: pytest.Pytester) -> None:
|