mirror of
https://github.com/ceph/ceph
synced 2024-12-24 12:24:19 +00:00
4c0a2b9373
and remove src/test/gtest-parallel submodule, because gtest-parallel is only useful for running tests. and not all end-users are interested in running test not to mention running them in parallel. so, to avoid including gtest-parallel scripts in the dist tarball. it'd be better to make it optional, and an external project. Signed-off-by: Kefu Chai <kchai@redhat.com>
51 lines
2.1 KiB
CMake
51 lines
2.1 KiB
CMake
#AddCephTest is a module for adding tests to the "make check" target which runs CTest
|
|
|
|
#adds makes target/script into a test, test to check target, sets necessary environment variables
|
|
function(add_ceph_test test_name test_path)
|
|
add_test(NAME ${test_name} COMMAND ${test_path} ${ARGN})
|
|
if(TARGET ${test_name})
|
|
add_dependencies(tests ${test_name})
|
|
endif()
|
|
set_property(TEST
|
|
${test_name}
|
|
PROPERTY ENVIRONMENT
|
|
CEPH_ROOT=${CMAKE_SOURCE_DIR}
|
|
CEPH_BIN=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
|
|
CEPH_LIB=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
|
|
CEPH_BUILD_DIR=${CMAKE_BINARY_DIR}
|
|
LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/lib
|
|
PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:${CMAKE_SOURCE_DIR}/src:$ENV{PATH}
|
|
PYTHONPATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cython_modules/lib.${PYTHON${PYTHON_VERSION}_VERSION_MAJOR}:${CMAKE_SOURCE_DIR}/src/pybind
|
|
CEPH_BUILD_VIRTUALENV=${CEPH_BUILD_VIRTUALENV})
|
|
# none of the tests should take more than 1 hour to complete
|
|
set_property(TEST
|
|
${test_name}
|
|
PROPERTY TIMEOUT 3600)
|
|
endfunction()
|
|
|
|
option(WITH_GTEST_PARALLEL "Enable running gtest based tests in parallel" OFF)
|
|
if(WITH_GTEST_PARALLEL)
|
|
include(ExternalProject)
|
|
ExternalProject_Add(gtest-parallel_ext
|
|
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/gtest-parallel
|
|
GIT_REPOSITORY "https://github.com/google/gtest-parallel.git"
|
|
GIT_TAG "master"
|
|
CONFIGURE_COMMAND ""
|
|
BUILD_COMMAND ""
|
|
INSTALL_COMMAND "")
|
|
add_dependencies(tests gtest-parallel_ext)
|
|
endif()
|
|
|
|
#sets uniform compiler flags and link libraries
|
|
function(add_ceph_unittest unittest_name)
|
|
set(UNITTEST "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${unittest_name}")
|
|
# If the second argument is "parallel", it means we want a parallel run
|
|
if(WITH_GTEST_PARALLEL AND "${ARGV1}" STREQUAL "parallel")
|
|
ExternalProject_Get_Property(gtest-parallel_ext source_dir)
|
|
set(UNITTEST ${source_dir}/gtest-parallel ${UNITTEST})
|
|
endif()
|
|
add_ceph_test(${unittest_name} "${UNITTEST}")
|
|
target_link_libraries(${unittest_name} ${UNITTEST_LIBS})
|
|
set_target_properties(${unittest_name} PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
|
|
endfunction()
|