Loading .gitlab-ci.yml +20 −19 Original line number Diff line number Diff line Loading @@ -10,10 +10,10 @@ variables: DEPS_COMMIT: "${CI_PROJECT_DIR}/deps/install/gkfs_deps_commit" BUILD_PATH: "${CI_PROJECT_DIR}/gkfs/build" INSTALL_PATH: "${CI_PROJECT_DIR}/gkfs/install" TESTS_BIN_PATH: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests" TESTS_RUN_PATH: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/run" INTEGRATION_TESTS_BIN_PATH: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/integration" INTEGRATION_TESTS_RUN_PATH: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/integration/run" TESTS_BUILD_PATH: "${CI_PROJECT_DIR}/test/build" PYTEST: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/pytest-venv/bin/py.test" PYTEST: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/integration/pytest-venv/bin/py.test" LOG_PATH: "${CI_PROJECT_DIR}/logs" LD_LIBRARY_PATH: "${CI_PROJECT_DIR}/deps/install/lib;${CI_PROJECT_DIR}/deps/install/lib64" # Configuration variables Loading Loading @@ -80,12 +80,13 @@ compile tests: integration tests: stage: test script: - mkdir -p ${TESTS_RUN_PATH} - cd ${TESTS_BIN_PATH} && TMPDIR=${TESTS_RUN_PATH} unbuffer ${PYTEST} -v | tee ${TESTS_RUN_PATH}/session.log - mkdir -p ${INTEGRATION_TESTS_RUN_PATH} - cd ${INTEGRATION_TESTS_BIN_PATH} - TMPDIR=${INTEGRATION_TESTS_RUN_PATH} unbuffer ${PYTEST} -v | tee ${INTEGRATION_TESTS_RUN_PATH}/session.log artifacts: when: on_failure paths: - "${TESTS_RUN_PATH}" - "${INTEGRATION_TESTS_RUN_PATH}" test wr: stage: test Loading CMake/GkfsPythonTesting.cmake +25 −5 Original line number Diff line number Diff line Loading @@ -57,17 +57,37 @@ function(gkfs_enable_python_testing) if(GKFS_INSTALL_TESTS) configure_file(pytest.install.ini.in pytest.install.ini @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pytest.install.ini DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration RENAME pytest.ini ) install(FILES conftest.py DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration ) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/pytest-venv DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests USE_SOURCE_PERMISSIONS if(NOT PYTEST_VIRTUALENV) set(PYTEST_VIRTUALENV ${CMAKE_INSTALL_FULL_DATAROOTDIR}/gkfs/tests/integration/pytest-venv) endif() # Python's virtual environments are not relocatable, we need to # recreate the virtualenv at the appropriate install location # find an appropriate python interpreter find_package(Python3 3.6 REQUIRED COMPONENTS Interpreter) if(NOT Python3_FOUND) message(FATAL_ERROR "Unable to find Python 3") endif() install( CODE "message(\"Install pytest virtual environment...\")" CODE "message(\"-- Create virtual environment: ${PYTEST_VIRTUALENV}\")" CODE "execute_process(COMMAND ${Python3_EXECUTABLE} -m venv ${PYTEST_VIRTUALENV})" CODE "message(\"-- Installing packages...\")" CODE "execute_process(COMMAND ${PYTEST_VIRTUALENV}/bin/pip install --upgrade pip -v)" CODE "execute_process(COMMAND ${PYTEST_VIRTUALENV}/bin/pip install -r ${CMAKE_CURRENT_BINARY_DIR}/requirements.txt --upgrade -v)" ) endif() Loading tests/integration/CMakeLists.txt +5 −5 Original line number Diff line number Diff line Loading @@ -13,19 +13,19 @@ gkfs_add_python_test( NAME test_directories PYTHON_VERSION 3.6 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} SOURCE tests/directories/test_directories.py SOURCE directories/test_directories.py ) gkfs_add_python_test( NAME test_shell PYTHON_VERSION 3.6 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} SOURCE tests/shell/ SOURCE shell/ ) if(GKFS_INSTALL_TESTS) install(DIRECTORY harness DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration FILES_MATCHING REGEX ".*\\.py" PATTERN "__pycache__" EXCLUDE Loading @@ -34,7 +34,7 @@ if(GKFS_INSTALL_TESTS) ) install(DIRECTORY directories DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration FILES_MATCHING REGEX ".*\\.py" PATTERN "__pycache__" EXCLUDE Loading @@ -42,7 +42,7 @@ if(GKFS_INSTALL_TESTS) ) install(DIRECTORY shell DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration FILES_MATCHING REGEX ".*\\.py" PATTERN "__pycache__" EXCLUDE Loading Loading
.gitlab-ci.yml +20 −19 Original line number Diff line number Diff line Loading @@ -10,10 +10,10 @@ variables: DEPS_COMMIT: "${CI_PROJECT_DIR}/deps/install/gkfs_deps_commit" BUILD_PATH: "${CI_PROJECT_DIR}/gkfs/build" INSTALL_PATH: "${CI_PROJECT_DIR}/gkfs/install" TESTS_BIN_PATH: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests" TESTS_RUN_PATH: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/run" INTEGRATION_TESTS_BIN_PATH: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/integration" INTEGRATION_TESTS_RUN_PATH: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/integration/run" TESTS_BUILD_PATH: "${CI_PROJECT_DIR}/test/build" PYTEST: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/pytest-venv/bin/py.test" PYTEST: "${CI_PROJECT_DIR}/gkfs/install/share/gkfs/tests/integration/pytest-venv/bin/py.test" LOG_PATH: "${CI_PROJECT_DIR}/logs" LD_LIBRARY_PATH: "${CI_PROJECT_DIR}/deps/install/lib;${CI_PROJECT_DIR}/deps/install/lib64" # Configuration variables Loading Loading @@ -80,12 +80,13 @@ compile tests: integration tests: stage: test script: - mkdir -p ${TESTS_RUN_PATH} - cd ${TESTS_BIN_PATH} && TMPDIR=${TESTS_RUN_PATH} unbuffer ${PYTEST} -v | tee ${TESTS_RUN_PATH}/session.log - mkdir -p ${INTEGRATION_TESTS_RUN_PATH} - cd ${INTEGRATION_TESTS_BIN_PATH} - TMPDIR=${INTEGRATION_TESTS_RUN_PATH} unbuffer ${PYTEST} -v | tee ${INTEGRATION_TESTS_RUN_PATH}/session.log artifacts: when: on_failure paths: - "${TESTS_RUN_PATH}" - "${INTEGRATION_TESTS_RUN_PATH}" test wr: stage: test Loading
CMake/GkfsPythonTesting.cmake +25 −5 Original line number Diff line number Diff line Loading @@ -57,17 +57,37 @@ function(gkfs_enable_python_testing) if(GKFS_INSTALL_TESTS) configure_file(pytest.install.ini.in pytest.install.ini @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pytest.install.ini DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration RENAME pytest.ini ) install(FILES conftest.py DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration ) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/pytest-venv DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests USE_SOURCE_PERMISSIONS if(NOT PYTEST_VIRTUALENV) set(PYTEST_VIRTUALENV ${CMAKE_INSTALL_FULL_DATAROOTDIR}/gkfs/tests/integration/pytest-venv) endif() # Python's virtual environments are not relocatable, we need to # recreate the virtualenv at the appropriate install location # find an appropriate python interpreter find_package(Python3 3.6 REQUIRED COMPONENTS Interpreter) if(NOT Python3_FOUND) message(FATAL_ERROR "Unable to find Python 3") endif() install( CODE "message(\"Install pytest virtual environment...\")" CODE "message(\"-- Create virtual environment: ${PYTEST_VIRTUALENV}\")" CODE "execute_process(COMMAND ${Python3_EXECUTABLE} -m venv ${PYTEST_VIRTUALENV})" CODE "message(\"-- Installing packages...\")" CODE "execute_process(COMMAND ${PYTEST_VIRTUALENV}/bin/pip install --upgrade pip -v)" CODE "execute_process(COMMAND ${PYTEST_VIRTUALENV}/bin/pip install -r ${CMAKE_CURRENT_BINARY_DIR}/requirements.txt --upgrade -v)" ) endif() Loading
tests/integration/CMakeLists.txt +5 −5 Original line number Diff line number Diff line Loading @@ -13,19 +13,19 @@ gkfs_add_python_test( NAME test_directories PYTHON_VERSION 3.6 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} SOURCE tests/directories/test_directories.py SOURCE directories/test_directories.py ) gkfs_add_python_test( NAME test_shell PYTHON_VERSION 3.6 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} SOURCE tests/shell/ SOURCE shell/ ) if(GKFS_INSTALL_TESTS) install(DIRECTORY harness DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration FILES_MATCHING REGEX ".*\\.py" PATTERN "__pycache__" EXCLUDE Loading @@ -34,7 +34,7 @@ if(GKFS_INSTALL_TESTS) ) install(DIRECTORY directories DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration FILES_MATCHING REGEX ".*\\.py" PATTERN "__pycache__" EXCLUDE Loading @@ -42,7 +42,7 @@ if(GKFS_INSTALL_TESTS) ) install(DIRECTORY shell DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration FILES_MATCHING REGEX ".*\\.py" PATTERN "__pycache__" EXCLUDE Loading