mirror of
https://github.com/pybind/pybind11.git
synced 2026-03-14 20:27:47 +00:00
tests: add PYBIND11_TEST_SMART_HOLDER to tests
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
This commit is contained in:
committed by
Henry Schreiner
parent
29979761ba
commit
bc557a9b5b
12
.github/workflows/ci.yml
vendored
12
.github/workflows/ci.yml
vendored
@@ -47,7 +47,7 @@ jobs:
|
||||
cmake-args: -DCMAKE_CXX_STANDARD=23 -DPYBIND11_SIMPLE_GIL_MANAGEMENT=ON
|
||||
- runs-on: ubuntu-latest
|
||||
python-version: '3.14t'
|
||||
cmake-args: -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_FLAGS="-DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE"
|
||||
cmake-args: -DCMAKE_CXX_STANDARD=17 -DPYBIND11_TEST_SMART_HOLDER=ON
|
||||
- runs-on: ubuntu-latest
|
||||
python-version: 'pypy3.11'
|
||||
cmake-args: -DCMAKE_CXX_STANDARD=17
|
||||
@@ -83,10 +83,10 @@ jobs:
|
||||
cmake-args: -DCMAKE_CXX_STANDARD=20
|
||||
- runs-on: ubuntu-latest
|
||||
python-version: '3.11'
|
||||
cmake-args: -DCMAKE_CXX_FLAGS="-DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE" -DCMAKE_CXX_STANDARD=17
|
||||
cmake-args: -DPYBIND11_TEST_SMART_HOLDER=ON -DCMAKE_CXX_STANDARD=17
|
||||
- runs-on: ubuntu-latest
|
||||
python-version: '3.12'
|
||||
cmake-args: -DCMAKE_CXX_FLAGS="-DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE" -DPYBIND11_SIMPLE_GIL_MANAGEMENT=ON
|
||||
cmake-args: -DPYBIND11_TEST_SMART_HOLDER=ON -DPYBIND11_SIMPLE_GIL_MANAGEMENT=ON
|
||||
- runs-on: ubuntu-latest
|
||||
python-version: '3.13t'
|
||||
cmake-args: -DCMAKE_CXX_STANDARD=20 -DPYBIND11_DISABLE_HANDLE_TYPE_NAME_DEFAULT_IMPLEMENTATION=ON
|
||||
@@ -105,7 +105,7 @@ jobs:
|
||||
cmake-args: -DCMAKE_CXX_STANDARD=14
|
||||
- runs-on: macos-13
|
||||
python-version: '3.11'
|
||||
cmake-args: -DCMAKE_CXX_FLAGS="-DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE"
|
||||
cmake-args: -DPYBIND11_TEST_SMART_HOLDER=ON
|
||||
- runs-on: macos-latest
|
||||
python-version: '3.12'
|
||||
cmake-args: -DCMAKE_CXX_STANDARD=17 -DPYBIND11_DISABLE_HANDLE_TYPE_NAME_DEFAULT_IMPLEMENTATION=ON
|
||||
@@ -125,7 +125,7 @@ jobs:
|
||||
|
||||
- runs-on: windows-2019
|
||||
python-version: '3.9'
|
||||
cmake-args: -DCMAKE_CXX_FLAGS="-DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE"
|
||||
cmake-args: -DPYBIND11_TEST_SMART_HOLDER=ON
|
||||
- runs-on: windows-2022
|
||||
python-version: '3.8'
|
||||
cmake-args: -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DPYBIND11_NUMPY_1_ONLY=ON
|
||||
@@ -138,7 +138,7 @@ jobs:
|
||||
# cmake-args: -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebug
|
||||
- runs-on: windows-2022
|
||||
python-version: '3.10'
|
||||
cmake-args: -DCMAKE_CXX_FLAGS="/DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE /GR /EHsc"
|
||||
cmake-args: -DPYBIND11_TEST_SMART_HOLDER=ON -DCMAKE_CXX_FLAGS="/GR /EHsc"
|
||||
- runs-on: windows-2022
|
||||
python-version: '3.13'
|
||||
cmake-args: -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebugDLL
|
||||
|
||||
@@ -69,6 +69,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../tools")
|
||||
option(PYBIND11_WERROR "Report all warnings as errors" OFF)
|
||||
option(DOWNLOAD_EIGEN "Download EIGEN" OFF)
|
||||
option(PYBIND11_CUDA_TESTS "Enable building CUDA tests" OFF)
|
||||
option(PYBIND11_TEST_SMART_HOLDER "Change the default to smart holder" OFF)
|
||||
set(PYBIND11_TEST_OVERRIDE
|
||||
""
|
||||
CACHE STRING "Tests from ;-separated list of *.cpp files will be built instead of all tests")
|
||||
@@ -499,6 +500,13 @@ foreach(target ${test_targets})
|
||||
target_compile_definitions(${target} PRIVATE -DPYBIND11_TEST_BOOST)
|
||||
endif()
|
||||
|
||||
if(PYBIND11_TEST_SMART_HOLDER)
|
||||
target_compile_definitions(
|
||||
${target}
|
||||
PUBLIC -DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${target} PRIVATE ${STD_FS_LIB})
|
||||
|
||||
# Always write the output file directly into the 'tests' directory (even on MSVC)
|
||||
@@ -572,6 +580,16 @@ if(NOT PYBIND11_CUDA_TESTS)
|
||||
"$<1:${CMAKE_CURRENT_BINARY_DIR}>")
|
||||
set_target_properties(mod_shared_interpreter_gil PROPERTIES LIBRARY_OUTPUT_DIRECTORY
|
||||
"$<1:${CMAKE_CURRENT_BINARY_DIR}>")
|
||||
if(PYBIND11_TEST_SMART_HOLDER)
|
||||
target_compile_definitions(
|
||||
mod_per_interpreter_gil
|
||||
PUBLIC -DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE
|
||||
)
|
||||
target_compile_definitions(
|
||||
mod_shared_interpreter_gil
|
||||
PUBLIC -DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE
|
||||
)
|
||||
endif()
|
||||
add_dependencies(pytest mod_per_interpreter_gil mod_shared_interpreter_gil)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -51,6 +51,11 @@ function(pybind11_add_build_test name)
|
||||
add_dependencies(test_cmake_build test_build_${name})
|
||||
endfunction()
|
||||
|
||||
if(PYBIND11_TEST_SMART_HOLDER)
|
||||
add_compile_definitions(
|
||||
-DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE)
|
||||
endif()
|
||||
|
||||
possibly_uninitialized(PYTHON_MODULE_EXTENSION Python_INTERPRETER_ID)
|
||||
|
||||
pybind11_add_build_test(subdirectory_function)
|
||||
|
||||
@@ -28,6 +28,11 @@ endif()
|
||||
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
if(PYBIND11_TEST_SMART_HOLDER)
|
||||
add_compile_definitions(
|
||||
-DPYBIND11_RUN_TESTING_WITH_SMART_HOLDER_AS_DEFAULT_BUT_NEVER_USE_IN_PRODUCTION_PLEASE)
|
||||
endif()
|
||||
|
||||
add_executable(test_embed catch.cpp test_interpreter.cpp test_subinterpreter.cpp)
|
||||
pybind11_enable_warnings(test_embed)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user