From e1778c811d117d339e610aa1cb000462c4f0bf1e Mon Sep 17 00:00:00 2001 From: Brendan Le Foll Date: Tue, 13 Jun 2017 16:33:47 +0200 Subject: [PATCH] tests: add USEPYTHON3TESTS to explicitly use python3 for tests Signed-off-by: Brendan Le Foll --- CMakeLists.txt | 1 + Dockerfile | 2 ++ docker-compose.yaml | 3 +++ tests/CMakeLists.txt | 12 +++++++----- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b0d9804..b308609 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,6 +140,7 @@ option (ENABLEEXAMPLES "Disable building of examples" ON) option (INSTALLGPIOTOOL "Install gpio tool" OFF) option (INSTALLTOOLS "Install all tools" ON) option (BUILDTESTS "Override the addition of tests" ON) +option (USEPYTHON3TESTS "Force tests to run with python3" OFF) set (BUILDARCH "" CACHE STRING "Override architecture to build for") diff --git a/Dockerfile b/Dockerfile index bea5cb3..299b421 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,6 +50,7 @@ ARG BUILDTESTS ARG CC ARG CXX ARG NODE_VERSION +ARG USEPYTHON3TESTS # Configure Build Environment ENV NVM_DIR /root/.nvm @@ -95,6 +96,7 @@ RUN . $NVM_DIR/nvm.sh && cmake \ -DINSTALLGPIOTOOL=$INSTALLGPIOTOOL \ -DINSTALLTOOLS=$INSTALLTOOLS \ -DBUILDTESTS=$BUILDTESTS \ + -DUSEPYTHON3TESTS=$USEPYTHON3TESTS \ .. CMD make diff --git a/docker-compose.yaml b/docker-compose.yaml index ad50051..98f83c9 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -53,6 +53,9 @@ services: python3: extends: python2 + build: + args: + - USEPYTHON3TESTS=ON command: bash -c "make _python3-mraa && ctest --output-on-failure" java: diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8139ae1..a20531c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -9,12 +9,14 @@ if (PYTHON2INTERP_FOUND AND BUILDSWIGJAVA) endif () if (BUILDSWIGPYTHON) - if (PYTHON2INTERP_FOUND) + if (PYTHON2INTERP_FOUND AND EXISTS "${CMAKE_BINARY_DIR}/src/python/python2" AND NOT USEPYTHON3TESTS) set (PYTHON_DEFAULT_PYTHONPATH "${CMAKE_BINARY_DIR}/src/python/python2") set (PYTHON_DEFAULT_INTERP "${PYTHON2_EXECUTABLE}") - elseif (PYTHON3INTERP_FOUND) + elseif (PYTHON3INTERP_FOUND AND EXISTS "${CMAKE_BINARY_DIR}/src/python/python3") set (PYTHON_DEFAULT_PYTHONPATH "${CMAKE_BINARY_DIR}/src/python/python3") set (PYTHON_DEFAULT_INTERP "${PYTHON3_EXECUTABLE}") + elseif (USEPYTHON3TESTS) + message (FATAL "Failed to find python3{,-dev} but forced python3 tests") endif () if (DEFINED PYTHON_DEFAULT_INTERP) @@ -22,13 +24,13 @@ if (BUILDSWIGPYTHON) add_subdirectory (mock) else () add_test (NAME py_general COMMAND ${PYTHON_DEFAULT_INTERP} ${CMAKE_CURRENT_SOURCE_DIR}/general_checks.py) - set_tests_properties(py_general PROPERTIES ENVIRONMENT "PYTHONPATH=${PYTHON_DEFAULT_PYTHONPATH}") + set_tests_properties (py_general PROPERTIES ENVIRONMENT "PYTHONPATH=${PYTHON_DEFAULT_PYTHONPATH}") add_test (NAME py_platform COMMAND ${PYTHON_DEFAULT_INTERP} ${CMAKE_CURRENT_SOURCE_DIR}/platform_checks.py) - set_tests_properties(py_platform PROPERTIES ENVIRONMENT "PYTHONPATH=${PYTHON_DEFAULT_PYTHONPATH}") + set_tests_properties (py_platform PROPERTIES ENVIRONMENT "PYTHONPATH=${PYTHON_DEFAULT_PYTHONPATH}") add_test (NAME py_gpio COMMAND ${PYTHON_DEFAULT_INTERP} ${CMAKE_CURRENT_SOURCE_DIR}/gpio_checks.py) - set_tests_properties(py_gpio PROPERTIES ENVIRONMENT "PYTHONPATH=${PYTHON_DEFAULT_PYTHONPATH}") + set_tests_properties (py_gpio PROPERTIES ENVIRONMENT "PYTHONPATH=${PYTHON_DEFAULT_PYTHONPATH}") endif () else () message (STATUS "Could not run tests since python interpreter or python bindings not built")