diff options
author | Benjamin Schubert <contact@benschubert.me> | 2020-07-03 12:47:14 +0000 |
---|---|---|
committer | Benjamin Schubert <contact@benschubert.me> | 2020-08-22 12:22:15 +0000 |
commit | dd6867dc9c41818f7390e59ec7fbff87ef8fe787 (patch) | |
tree | 14295930dc2c8d6c3547adc7fdf34904d918ad9a | |
parent | 4929020e85b68c3446ddc276821219fc1f687d18 (diff) | |
download | buildstream-bschubert/stricter-thread-checks.tar.gz |
_fixtures.py: Only get the normal number of threads at the start of sessionbschubert/stricter-thread-checks
This ensures that we also have our tests correctly shutting down
background threads and not interferring with each other
-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 |