diff options
-rw-r--r-- | src/buildstream/testing/_fixtures.py | 15 | ||||
-rw-r--r-- | src/buildstream/testing/_sourcetests/conftest.py | 2 | ||||
-rwxr-xr-x | tests/conftest.py | 6 |
3 files changed, 17 insertions, 6 deletions
diff --git a/src/buildstream/testing/_fixtures.py b/src/buildstream/testing/_fixtures.py index 5da51bb45..98778936d 100644 --- a/src/buildstream/testing/_fixtures.py +++ b/src/buildstream/testing/_fixtures.py @@ -14,19 +14,26 @@ # You should have received a copy of the GNU Lesser General Public # License along with this library. If not, see <http://www.gnu.org/licenses/>. +# pylint: disable=redefined-outer-name + import psutil import pytest from buildstream import node, utils -# Catch tests that don't shut down background threads, which could then lead -# to other tests hanging when BuildStream uses fork(). -@pytest.fixture(autouse=True) -def thread_check(): + +@pytest.fixture(autouse=True, scope="session") +def default_thread_number(): # xdist/execnet has its own helper thread. # Ignore that for `utils._is_single_threaded` checks. utils._INITIAL_NUM_THREADS_IN_MAIN_PROCESS = psutil.Process().num_threads() + +# Catch tests that don't shut down background threads, which could then lead +# to other tests hanging when BuildStream uses fork(). +@pytest.fixture(autouse=True) +def thread_check(default_thread_number): + assert utils._is_single_threaded() yield assert utils._is_single_threaded() diff --git a/src/buildstream/testing/_sourcetests/conftest.py b/src/buildstream/testing/_sourcetests/conftest.py index 64dd404ef..6790712a9 100644 --- a/src/buildstream/testing/_sourcetests/conftest.py +++ b/src/buildstream/testing/_sourcetests/conftest.py @@ -14,4 +14,4 @@ # You should have received a copy of the GNU Lesser General Public # License along with this library. If not, see <http://www.gnu.org/licenses/>. -from .._fixtures import reset_global_node_state, thread_check # pylint: disable=unused-import +from .._fixtures import reset_global_node_state, default_thread_number, thread_check # pylint: disable=unused-import diff --git a/tests/conftest.py b/tests/conftest.py index 28e120d5e..476113105 100755 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -25,7 +25,11 @@ import pkg_resources import pytest from buildstream.testing import register_repo_kind, sourcetests_collection_hook -from buildstream.testing._fixtures import reset_global_node_state, thread_check # pylint: disable=unused-import +from buildstream.testing._fixtures import ( # pylint: disable=unused-import + default_thread_number, + reset_global_node_state, + thread_check, +) from buildstream.testing.integration import integration_cache # pylint: disable=unused-import |