From 83b92ceb3537666fb0188f564e1d53bf8c80b0ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Mon, 18 Nov 2024 23:39:59 +0100 Subject: [PATCH] Try to fix reentrant write transient failures in tests (#5447) * Disable print_destroyed in tests on GraalPy * Reenable test_iostream on GraalPy --- tests/constructor_stats.h | 8 ++++++++ tests/test_iostream.py | 6 ------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/constructor_stats.h b/tests/constructor_stats.h index 9a5754fed..352b1b6ca 100644 --- a/tests/constructor_stats.h +++ b/tests/constructor_stats.h @@ -312,8 +312,16 @@ void print_created(T *inst, Values &&...values) { } template void print_destroyed(T *inst, Values &&...values) { // Prints but doesn't store given values + /* + * On GraalPy, destructors can trigger anywhere and this can cause random + * failures in unrelated tests. + */ +#if !defined(GRAALVM_PYTHON) print_constr_details(inst, "destroyed", values...); track_destroyed(inst); +#else + py::detail::silence_unused_warnings(inst, values...); +#endif } template void print_values(T *inst, Values &&...values) { diff --git a/tests/test_iostream.py b/tests/test_iostream.py index 606028d6f..c3d987787 100644 --- a/tests/test_iostream.py +++ b/tests/test_iostream.py @@ -6,14 +6,8 @@ from io import StringIO import pytest -import env # noqa: F401 from pybind11_tests import iostream as m -pytestmark = pytest.mark.skipif( - "env.GRAALPY", - reason="Delayed prints from finalizers from other tests can end up in the output", -) - def test_captured(capsys): msg = "I've been redirected to Python, I hope!"