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: