diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake index 3ce1d5d5d1162..541613938efd6 100644 --- a/cmake/modules/RootMacros.cmake +++ b/cmake/modules/RootMacros.cmake @@ -2037,7 +2037,7 @@ function(ROOT_ADD_PYUNITTESTS name) string(REGEX REPLACE "[_]" "-" good_name "${name}") ROOT_ADD_TEST(pyunittests-${good_name} - COMMAND ${Python3_EXECUTABLE} -B -m unittest discover -s ${CMAKE_CURRENT_SOURCE_DIR} -p "*.py" -v + COMMAND ${Python3_EXECUTABLE_DEV} -B -m unittest discover -s ${CMAKE_CURRENT_SOURCE_DIR} -p "*.py" -v ENVIRONMENT PYTHONPATH=${pythonpaths_native}) endfunction() @@ -2097,9 +2097,9 @@ function(ROOT_ADD_PYUNITTEST name file) string(REPLACE "-test-" "-" clean_name_with_path ${name_with_path}) if(ARG_GENERIC) - set(test_cmd COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${file_name}) + set(test_cmd COMMAND ${Python3_EXECUTABLE_DEV} ${CMAKE_CURRENT_SOURCE_DIR}/${file_name}) else() - set(test_cmd COMMAND ${Python3_EXECUTABLE} -B -m unittest discover -s ${CMAKE_CURRENT_SOURCE_DIR}/${file_dir} -p ${file_name} -v) + set(test_cmd COMMAND ${Python3_EXECUTABLE_DEV} -B -m unittest discover -s ${CMAKE_CURRENT_SOURCE_DIR}/${file_dir} -p ${file_name} -v) endif() set(test_name pyunittests${clean_name_with_path}) @@ -3026,7 +3026,7 @@ macro(ROOTTEST_SETUP_MACROTEST) # Add python script to CTest. elseif(ARG_MACRO MATCHES "[.]py") get_filename_component(realfp ${ARG_MACRO} REALPATH) - set(command ${Python3_EXECUTABLE} ${realfp} ${PYROOT_EXTRAFLAGS}) + set(command ${Python3_EXECUTABLE_DEV} ${realfp} ${PYROOT_EXTRAFLAGS}) elseif(DEFINED ARG_MACRO) set(command ${root_cmd} ${ARG_MACRO}) @@ -3062,7 +3062,7 @@ macro(ROOTTEST_SETUP_EXECTEST) if(MSVC) if(${realexec} MATCHES "[.]py" AND NOT ${realexec} MATCHES "[.]exe") - set(realexec ${Python3_EXECUTABLE} ${realexec}) + set(realexec ${Python3_EXECUTABLE_DEV} ${realexec}) else() set(realexec ${realexec}) endif() diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake index ac8fcebe0b11d..751ef4a792315 100644 --- a/cmake/modules/SearchInstalledSoftware.cmake +++ b/cmake/modules/SearchInstalledSoftware.cmake @@ -439,6 +439,9 @@ if(Python3_Development_FOUND OR Python3_Development.Module_FOUND) endif() endif() +# The invocation of the Python 3 executable that should be used for testing: +set(Python3_EXECUTABLE_DEV ${Python3_EXECUTABLE} -X dev -W error) + #---Check for OpenGL installation------------------------------------------------------- # OpenGL is required by various graf3d features that are enabled with opengl=ON, # or by the Cocoa-related code that always requires it. diff --git a/roottest/main/CMakeLists.txt b/roottest/main/CMakeLists.txt index e2272f4571d92..a4f71c53911f5 100644 --- a/roottest/main/CMakeLists.txt +++ b/roottest/main/CMakeLists.txt @@ -11,7 +11,7 @@ configure_file(RootcpReplaceEntireFileCheck.C . COPYONLY) # We should explicitly use the Python executable from the Python version that # was used to build ROOT. Otherwise, we risk picking up a different Python # version at test time. -set(PY_TOOLS_PREFIX ${Python3_EXECUTABLE} ${ROOT_BINDIR}) +set(PY_TOOLS_PREFIX ${Python3_EXECUTABLE_DEV} ${ROOT_BINDIR}) set(TOOLS_PREFIX ${ROOT_BINDIR}) if(MSVC) @@ -519,7 +519,7 @@ if(pyroot) set(test_env PYTHONWARNINGS=ignore) ############################## PATTERN TESTS ############################ -set (TESTPATTERN_EXE ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/testPatternToFileNameAndPathSplitList.py) +set (TESTPATTERN_EXE ${Python3_EXECUTABLE_DEV} ${CMAKE_CURRENT_SOURCE_DIR}/testPatternToFileNameAndPathSplitList.py) ROOTTEST_ADD_TEST(SimplePattern1 COMMAND ${TESTPATTERN_EXE} test.root OUTREF SimplePattern.ref diff --git a/roottest/python/JupyROOT/CMakeLists.txt b/roottest/python/JupyROOT/CMakeLists.txt index 828055119d733..fc23cec51517e 100644 --- a/roottest/python/JupyROOT/CMakeLists.txt +++ b/roottest/python/JupyROOT/CMakeLists.txt @@ -23,7 +23,7 @@ foreach(pyfile ${pyfiles}) get_filename_component(SHORTPYFILE ${pyfile} NAME_WE) if (NOT ${SHORTPYFILE} STREQUAL "__init__") ROOTTEST_ADD_TEST(${SHORTPYFILE}_doctest - COMMAND ${Python3_EXECUTABLE} ${DOCTEST_LAUNCHER} ${pyfile} + COMMAND ${Python3_EXECUTABLE_DEV} ${DOCTEST_LAUNCHER} ${pyfile} PYTHON_DEPS IPython) endif() endforeach() @@ -33,7 +33,7 @@ foreach(NOTEBOOK ${NOTEBOOKS}) get_filename_component(NOTEBOOKBASE ${NOTEBOOK} NAME_WE) ROOTTEST_ADD_TEST(${NOTEBOOKBASE}_notebook COPY_TO_BUILDDIR ${NOTEBOOK} - COMMAND ${Python3_EXECUTABLE} ${NBDIFFUTIL} ${NOTEBOOK} + COMMAND ${Python3_EXECUTABLE_DEV} ${NBDIFFUTIL} ${NOTEBOOK} RUN_SERIAL PYTHON_DEPS jupyter) endforeach() @@ -44,7 +44,7 @@ if(imt) get_filename_component(NOTEBOOKBASE ${IMT_NB} NAME_WE) ROOTTEST_ADD_TEST(${NOTEBOOKBASE}_notebook COPY_TO_BUILDDIR ${IMT_NB} - COMMAND ${Python3_EXECUTABLE} ${NBDIFFUTIL} ${IMT_NB} "OFF" + COMMAND ${Python3_EXECUTABLE_DEV} ${NBDIFFUTIL} ${IMT_NB} "OFF" RUN_SERIAL PYTHON_DEPS jupyter) endif() diff --git a/roottest/root/meta/CMakeLists.txt b/roottest/root/meta/CMakeLists.txt index 88625e1c2cf60..2e311c05fa36a 100644 --- a/roottest/root/meta/CMakeLists.txt +++ b/roottest/root/meta/CMakeLists.txt @@ -26,7 +26,7 @@ ROOTTEST_ADD_TEST(ROOT5268 PASSREGEX "error: unknown type name 'Tbrowser'") ROOTTEST_ADD_TEST(rlibmap - COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/rlibmapLauncher.py + COMMAND ${Python3_EXECUTABLE_DEV} ${CMAKE_CURRENT_SOURCE_DIR}/rlibmapLauncher.py PASSRC 1 OUTREF rlibmap.ref) diff --git a/roottest/root/rint/CMakeLists.txt b/roottest/root/rint/CMakeLists.txt index f346988b0140b..828dab8e368bf 100644 --- a/roottest/root/rint/CMakeLists.txt +++ b/roottest/root/rint/CMakeLists.txt @@ -1,7 +1,7 @@ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64.*|x86.*|amd64.*|AMD64.*|i686.*|i386.*") # All platforms except of ARM/AARCH64 ROOTTEST_ADD_TEST(TabCom - COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/driveTabCom.py + COMMAND ${Python3_EXECUTABLE_DEV} ${CMAKE_CURRENT_SOURCE_DIR}/driveTabCom.py INPUT TabCom_input.txt OUTCNV filterOpt.sh OUTREF TabCom.oref @@ -9,7 +9,7 @@ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64.*|x86.*|amd64.*|AMD64.*|i686.*|i386 COPY_TO_BUILDDIR MyClass.h) ROOTTEST_ADD_TEST(BackslashNewline - COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/driveTabCom.py + COMMAND ${Python3_EXECUTABLE_DEV} ${CMAKE_CURRENT_SOURCE_DIR}/driveTabCom.py INPUT BackslashNewline_input.txt) endif() diff --git a/tutorials/CMakeLists.txt b/tutorials/CMakeLists.txt index 93f2ab646eb8d..6f7e62b8c366a 100644 --- a/tutorials/CMakeLists.txt +++ b/tutorials/CMakeLists.txt @@ -684,7 +684,7 @@ if(geom) endif() # define Python GNN parsing tutorial needed to run before if (ROOT_SONNET_FOUND AND ROOT_GRAPH_NETS_FOUND) - ROOT_ADD_TEST(tutorial-machine_learning-TMVA_SOFIE_GNN_Parser COMMAND ${Python3_EXECUTABLE} + ROOT_ADD_TEST(tutorial-machine_learning-TMVA_SOFIE_GNN_Parser COMMAND ${Python3_EXECUTABLE_DEV} ${CMAKE_CURRENT_SOURCE_DIR}/machine_learning/TMVA_SOFIE_GNN_Parser.py PASSRC 0 FAILREGEX "Error in" ": error:" LABELS tutorial ENVIRONMENT ${TUTORIAL_ENV}) set (machine_learning-TMVA_SOFIE_GNN_Application-depends tutorial-machine_learning-TMVA_SOFIE_GNN_Parser) @@ -1035,7 +1035,7 @@ if(pyroot) endif() ROOT_ADD_TEST(${tutorial_name} - COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${t} + COMMAND ${Python3_EXECUTABLE_DEV} ${CMAKE_CURRENT_SOURCE_DIR}/${t} PASSRC ${rc} FAILREGEX "Error in" ": error:" "segmentation violation" LABELS ${labels} DEPENDS ${tutorial_dependency}