mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-11 08:03:55 +00:00
Compare commits
4 Commits
882ad8041e
...
da4ecd82ab
Author | SHA1 | Date | |
---|---|---|---|
|
da4ecd82ab | ||
|
8d4cc5c513 | ||
|
61a0f8ed86 | ||
|
a00b51e250 |
5
.github/workflows/ci.yml
vendored
5
.github/workflows/ci.yml
vendored
@ -39,6 +39,7 @@ jobs:
|
||||
- 'pypy-3.8'
|
||||
- 'pypy-3.9'
|
||||
- 'pypy-3.10'
|
||||
- 'graalpy-24.1'
|
||||
|
||||
# Items in here will either be added to the build matrix (if not
|
||||
# present), or add new keys to an existing matrix element if all the
|
||||
@ -67,6 +68,10 @@ jobs:
|
||||
# Extra ubuntu latest job
|
||||
- runs-on: ubuntu-latest
|
||||
python: '3.11'
|
||||
exclude:
|
||||
# The setup-python action currently doesn't have graalpy for windows
|
||||
- python: 'graalpy-24.1'
|
||||
runs-on: 'windows-2022'
|
||||
|
||||
|
||||
name: "🐍 ${{ matrix.python }} • ${{ matrix.runs-on }} • x64 ${{ matrix.args }}"
|
||||
|
@ -2,11 +2,12 @@
|
||||
build~=1.0; python_version>="3.8"
|
||||
numpy~=1.23.0; python_version=="3.8" and platform_python_implementation=="PyPy"
|
||||
numpy~=1.25.0; python_version=="3.9" and platform_python_implementation=='PyPy'
|
||||
numpy~=1.21.5; platform_python_implementation!="PyPy" and python_version>="3.8" and python_version<"3.10"
|
||||
numpy~=1.22.2; platform_python_implementation!="PyPy" and python_version=="3.10"
|
||||
numpy~=1.26.0; platform_python_implementation!="PyPy" and python_version>="3.11" and python_version<"3.13"
|
||||
numpy~=1.26.0; platform_python_implementation=="GraalVM" and sys_platform=="linux"
|
||||
numpy~=1.21.5; platform_python_implementation!="PyPy" and platform_python_implementation!="GraalVM" and python_version>="3.8" and python_version<"3.10"
|
||||
numpy~=1.22.2; platform_python_implementation!="PyPy" and platform_python_implementation!="GraalVM" and python_version=="3.10"
|
||||
numpy~=1.26.0; platform_python_implementation!="PyPy" and platform_python_implementation!="GraalVM" and python_version>="3.11" and python_version<"3.13"
|
||||
pytest~=7.0
|
||||
pytest-timeout
|
||||
scipy~=1.5.4; platform_python_implementation!="PyPy" and python_version<"3.10"
|
||||
scipy~=1.8.0; platform_python_implementation!="PyPy" and python_version=="3.10" and sys_platform!='win32'
|
||||
scipy~=1.11.1; platform_python_implementation!="PyPy" and python_version>="3.11" and python_version<"3.13" and sys_platform!='win32'
|
||||
scipy~=1.5.4; platform_python_implementation!="PyPy" and platform_python_implementation!="GraalVM" and python_version<"3.10"
|
||||
scipy~=1.8.0; platform_python_implementation!="PyPy" and platform_python_implementation!="GraalVM" and python_version=="3.10" and sys_platform!='win32'
|
||||
scipy~=1.11.1; platform_python_implementation!="PyPy" and platform_python_implementation!="GraalVM" and python_version>="3.11" and python_version<"3.13" and sys_platform!='win32'
|
||||
|
@ -211,6 +211,11 @@ def _run_in_threads(test_fn, num_threads, parallel):
|
||||
|
||||
@pytest.mark.skipif(sys.platform.startswith("emscripten"), reason="Requires threads")
|
||||
@pytest.mark.parametrize("test_fn", ALL_BASIC_TESTS_PLUS_INTENTIONAL_DEADLOCK)
|
||||
@pytest.mark.xfail(
|
||||
"env.GRAALPY",
|
||||
reason="GraalPy transiently complains about unfinished threads at process exit",
|
||||
strict=False,
|
||||
)
|
||||
def test_run_in_process_one_thread(test_fn):
|
||||
"""Makes sure there is no GIL deadlock when running in a thread.
|
||||
|
||||
@ -221,6 +226,11 @@ def test_run_in_process_one_thread(test_fn):
|
||||
|
||||
@pytest.mark.skipif(sys.platform.startswith("emscripten"), reason="Requires threads")
|
||||
@pytest.mark.parametrize("test_fn", ALL_BASIC_TESTS_PLUS_INTENTIONAL_DEADLOCK)
|
||||
@pytest.mark.xfail(
|
||||
"env.GRAALPY",
|
||||
reason="GraalPy transiently complains about unfinished threads at process exit",
|
||||
strict=False,
|
||||
)
|
||||
def test_run_in_process_multiple_threads_parallel(test_fn):
|
||||
"""Makes sure there is no GIL deadlock when running in a thread multiple times in parallel.
|
||||
|
||||
@ -231,6 +241,11 @@ def test_run_in_process_multiple_threads_parallel(test_fn):
|
||||
|
||||
@pytest.mark.skipif(sys.platform.startswith("emscripten"), reason="Requires threads")
|
||||
@pytest.mark.parametrize("test_fn", ALL_BASIC_TESTS_PLUS_INTENTIONAL_DEADLOCK)
|
||||
@pytest.mark.xfail(
|
||||
"env.GRAALPY",
|
||||
reason="GraalPy transiently complains about unfinished threads at process exit",
|
||||
strict=False,
|
||||
)
|
||||
def test_run_in_process_multiple_threads_sequential(test_fn):
|
||||
"""Makes sure there is no GIL deadlock when running in a thread multiple times sequentially.
|
||||
|
||||
@ -241,6 +256,11 @@ def test_run_in_process_multiple_threads_sequential(test_fn):
|
||||
|
||||
@pytest.mark.skipif(sys.platform.startswith("emscripten"), reason="Requires threads")
|
||||
@pytest.mark.parametrize("test_fn", ALL_BASIC_TESTS_PLUS_INTENTIONAL_DEADLOCK)
|
||||
@pytest.mark.xfail(
|
||||
"env.GRAALPY",
|
||||
reason="GraalPy transiently complains about unfinished threads at process exit",
|
||||
strict=False,
|
||||
)
|
||||
def test_run_in_process_direct(test_fn):
|
||||
"""Makes sure there is no GIL deadlock when using processes.
|
||||
|
||||
|
@ -6,8 +6,14 @@ 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!"
|
||||
|
@ -92,6 +92,7 @@ def test_override(capture, msg):
|
||||
assert cstats.move_constructions >= 0
|
||||
|
||||
|
||||
@pytest.mark.skipif("env.GRAALPY", reason="Cannot reliably trigger GC")
|
||||
def test_alias_delay_initialization1(capture):
|
||||
"""`A` only initializes its trampoline class when we inherit from it
|
||||
|
||||
@ -131,6 +132,7 @@ def test_alias_delay_initialization1(capture):
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.skipif("env.GRAALPY", reason="Cannot reliably trigger GC")
|
||||
def test_alias_delay_initialization2(capture):
|
||||
"""`A2`, unlike the above, is configured to always initialize the alias
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user