tests: Switch from PYTHON_EXECUTABLE to PYTHON_DEFAULT_EXECUTABLE

The DetectPython cmake script now outputs a default python executable.
Updated other cmake scripts to use this concept.  Used default where
python2/3 will work, use explicit PYTHON2/3_EXECUTABLE where an
explicit version is needed.  Also, fail if python is required and NO
version of python was found.

Signed-off-by: Noel Eck <noel.eck@intel.com>
This commit is contained in:
Noel Eck 2016-10-05 17:08:42 -07:00
parent edd8df4c50
commit c6610bdf46
3 changed files with 59 additions and 37 deletions

View File

@ -54,11 +54,23 @@ if (BUILDSWIGPYTHON OR BUILDSWIGNODE OR BUILDSWIGJAVA)
include (${SWIG_USE_FILE})
endif ()
# Python is required for swig generated python and for UPM tests
# UPM build can generated modules for both python2 AND python3
# Python is required for swig generated python and for UPM tests.
# The UPM build can generated modules for both python2 AND python3
# with the corresponding PYTHONLIBS. Currently, BUILDTESTS has a
# hard dependency on the PYTHON2INTERP.
# OpenCV python detect will attempt to find python2/3
if (BUILDSWIGPYTHON OR BUILDTESTS)
include (cmake/modules/OpenCVDetectPython.cmake)
# Fail if building tests but no python interpreter was found
if (BUILDTESTS AND NOT PYTHON2INTERP_FOUND)
message(FATAL_ERROR "BUILDTESTS=ON requires the python2 interpreter")
endif (BUILDTESTS AND NOT PYTHON2INTERP_FOUND)
# Fail if no LIBS were found
if (NOT PYTHON2LIBS_FOUND AND NOT PYTHON3LIBS_FOUND)
message(FATAL_ERROR "At least one python lib is required")
endif (NOT PYTHON2LIBS_FOUND AND NOT PYTHON3LIBS_FOUND)
endif (BUILDSWIGPYTHON OR BUILDTESTS)
# Which versions of python were found?

View File

@ -442,7 +442,7 @@ endmacro(upm_module_init)
if (BUILDDOC AND BUILDSWIGPYTHON)
# doxy2swig the doxygen output
add_custom_target (pyupm_doxy2swig ALL
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doxy2swig.py
COMMAND ${PYTHON2_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doxy2swig.py
${CMAKE_BINARY_DIR}/xml/index.xml
${CMAKE_CURRENT_BINARY_DIR}/pyupm_doxy2swig.i
DEPENDS doc)

View File

@ -1,55 +1,65 @@
add_test (NAME check_consistency COMMAND ${PYTHON_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_consistency.py
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
# Add some general tests (which use python2)...
if (PYTHON_DEFAULT_AVAILABLE)
# Consistency check
add_test (NAME check_consistency COMMAND ${PYTHON_DEFAULT_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_consistency.py
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
# Check file encodings in src tree
if (PYTHON2INTERP_FOUND)
add_test (NAME check_file_encoding COMMAND ${PYTHON_EXECUTABLE}
# Check file encodings in src tree
add_test (NAME check_file_encoding COMMAND ${PYTHON_DEFAULT_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_file_encoding.py
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
endif (PYTHON2INTERP_FOUND)
endif (PYTHON_DEFAULT_AVAILABLE)
if (BUILDSWIGJAVA)
add_test (NAME check_autoloadlibrary COMMAND ${PYTHON_EXECUTABLE}
# Add some java tests
if (BUILDSWIGJAVA AND PYTHON_DEFAULT_AVAILABLE)
add_test (NAME check_autoloadlibrary COMMAND ${PYTHON_DEFAULT_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_autoloadlibrary.py
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_test (NAME check_examplenames_java COMMAND ${PYTHON_EXECUTABLE}
add_test (NAME check_examplenames_java COMMAND ${PYTHON_DEFAULT_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_examplenames.py java
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_test (NAME check_clean COMMAND ${PYTHON_EXECUTABLE}
add_test (NAME check_clean COMMAND ${PYTHON_DEFAULT_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_clean.py
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif ()
endif (BUILDSWIGJAVA AND PYTHON_DEFAULT_AVAILABLE)
if (BUILDSWIGNODE)
add_test (NAME check_examplenames_js COMMAND ${PYTHON_EXECUTABLE}
# Add a node test
if (BUILDSWIGNODE AND PYTHON_DEFAULT_AVAILABLE)
add_test (NAME check_examplenames_js COMMAND ${PYTHON_DEFAULT_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_examplenames.py js
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif (BUILDSWIGNODE)
endif (BUILDSWIGNODE AND PYTHON_DEFAULT_AVAILABLE)
if (BUILDSWIGPYTHON)
add_test (NAME check_examplenames_python COMMAND ${PYTHON_EXECUTABLE}
# Add a python test
if (BUILDSWIGPYTHON AND PYTHON_DEFAULT_AVAILABLE)
# Check python examples against cxx examples
add_test (NAME check_examplenames_python COMMAND ${PYTHON_DEFAULT_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_examplenames.py python
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif (BUILDSWIGPYTHON AND PYTHON_DEFAULT_AVAILABLE)
if (PYTHON2INTERP_FOUND)
add_test (NAME check_load_modules_python2 COMMAND ${PYTHON2_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_pythonload.py
${CMAKE_BINARY_DIR}/src/*/python${PYTHON2_VERSION_MAJOR}.${PYTHON2_VERSION_MINOR}/*.py
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src/)
# Add some python2 tests
if (BUILDSWIGPYTHON AND PYTHON2INTERP_FOUND)
# Test load python2 modules
add_test (NAME check_load_modules_python2 COMMAND ${PYTHON2_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_pythonload.py
${CMAKE_BINARY_DIR}/src/*/python${PYTHON2_VERSION_MAJOR}.${PYTHON2_VERSION_MINOR}/*.py
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src/)
add_test (NAME check_load_examples_python2 COMMAND ${PYTHON2_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_pythonload.py
${CMAKE_SOURCE_DIR}/examples/python/*.py
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src/)
endif (PYTHON2INTERP_FOUND)
# Test load examples w/python2
add_test (NAME check_load_examples_python2 COMMAND ${PYTHON2_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_pythonload.py
${CMAKE_SOURCE_DIR}/examples/python/*.py
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src/)
endif (BUILDSWIGPYTHON AND PYTHON2INTERP_FOUND)
if (PYTHON3INTERP_FOUND)
add_test (NAME check_load_modules_python3 COMMAND ${PYTHON3_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_pythonload.py
${CMAKE_BINARY_DIR}/src/*/python${PYTHON3_VERSION_MAJOR}.${PYTHON3_VERSION_MINOR}/*.py
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src/)
endif (PYTHON3INTERP_FOUND)
endif (BUILDSWIGPYTHON)
# Add a python3 test
if (BUILDSWIGPYTHON AND PYTHON3INTERP_FOUND)
add_test (NAME check_load_modules_python3 COMMAND ${PYTHON3_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_pythonload.py
${CMAKE_BINARY_DIR}/src/*/python${PYTHON3_VERSION_MAJOR}.${PYTHON3_VERSION_MINOR}/*.py
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src/)
endif (BUILDSWIGPYTHON AND PYTHON3INTERP_FOUND)