add CTest support to build tree
This commit is contained in:
parent
d81d51d155
commit
02c48ab7d6
@ -85,6 +85,8 @@ if(DEFINED CMAKE_BUILD_TYPE)
|
||||
set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
|
||||
endif()
|
||||
|
||||
enable_testing()
|
||||
|
||||
project(OpenCV CXX C)
|
||||
|
||||
if(MSVC)
|
||||
|
@ -1008,6 +1008,12 @@ function(ocv_add_perf_tests)
|
||||
if(NOT BUILD_opencv_world)
|
||||
_ocv_add_precompiled_headers(${the_target})
|
||||
endif()
|
||||
|
||||
ocv_add_test_from_target("${the_target}" "Performance" "${the_target}")
|
||||
ocv_add_test_from_target("opencv_sanity_${name}" "Sanity" "${the_target}"
|
||||
"--perf_min_samples=1"
|
||||
"--perf_force_samples=1"
|
||||
"--perf_verify_sanity")
|
||||
else(OCV_DEPENDENCIES_FOUND)
|
||||
# TODO: warn about unsatisfied dependencies
|
||||
endif(OCV_DEPENDENCIES_FOUND)
|
||||
@ -1068,21 +1074,11 @@ function(ocv_add_accuracy_tests)
|
||||
set_target_properties(${the_target} PROPERTIES FOLDER "tests accuracy")
|
||||
endif()
|
||||
|
||||
enable_testing()
|
||||
get_target_property(LOC ${the_target} LOCATION)
|
||||
add_test(${the_target} "${LOC}")
|
||||
|
||||
if(WINRT)
|
||||
# removing APPCONTAINER from tests to run from console
|
||||
# look for detailed description inside of ocv_create_module macro above
|
||||
add_custom_command(TARGET "opencv_test_${name}"
|
||||
POST_BUILD
|
||||
COMMAND link.exe /edit /APPCONTAINER:NO $(TargetPath))
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_opencv_world)
|
||||
_ocv_add_precompiled_headers(${the_target})
|
||||
endif()
|
||||
|
||||
ocv_add_test_from_target("${the_target}" "Accuracy" "${the_target}")
|
||||
else(OCV_DEPENDENCIES_FOUND)
|
||||
# TODO: warn about unsatisfied dependencies
|
||||
endif(OCV_DEPENDENCIES_FOUND)
|
||||
|
@ -911,3 +911,32 @@ function(ocv_download)
|
||||
|
||||
set(DOWNLOAD_PACKAGE_LOCATION ${DOWNLOAD_TARGET} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(ocv_add_test_from_target test_name test_kind the_target)
|
||||
if(CMAKE_VERSION VERSION_GREATER "2.8" AND NOT CMAKE_CROSSCOMPILING)
|
||||
if(NOT "${test_kind}" MATCHES "^(Accuracy|Performance|Sanity)$")
|
||||
message(FATAL_ERROR "Unknown test kind : ${test_kind}")
|
||||
endif()
|
||||
if(NOT TARGET "${the_target}")
|
||||
message(FATAL_ERROR "${the_target} is not a CMake target")
|
||||
endif()
|
||||
|
||||
string(TOLOWER "${test_kind}" test_kind_lower)
|
||||
set(test_report_dir "${CMAKE_BINARY_DIR}/test-reports/${test_kind_lower}")
|
||||
file(MAKE_DIRECTORY "${test_report_dir}")
|
||||
|
||||
add_test(NAME "${test_name}"
|
||||
COMMAND "${the_target}"
|
||||
"--gtest_output=xml:${the_target}.xml"
|
||||
${ARGN})
|
||||
|
||||
set_tests_properties("${test_name}" PROPERTIES
|
||||
LABELS "${OPENCV_MODULE_${the_module}_LABEL};${test_kind}"
|
||||
WORKING_DIRECTORY "${test_report_dir}")
|
||||
|
||||
if(OPENCV_TEST_DATA_PATH)
|
||||
set_tests_properties("${test_name}" PROPERTIES
|
||||
ENVIRONMENT "OPENCV_TEST_DATA_PATH=${OPENCV_TEST_DATA_PATH}")
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
@ -46,9 +46,7 @@ if(OCV_DEPENDENCIES_FOUND)
|
||||
set_target_properties(${the_target} PROPERTIES FOLDER "tests accuracy")
|
||||
endif()
|
||||
|
||||
enable_testing()
|
||||
get_target_property(LOC ${the_target} LOCATION)
|
||||
add_test(${the_target} "${LOC}")
|
||||
ocv_add_test_from_target("${the_target}" "Accuracy" "${the_target}")
|
||||
|
||||
if(INSTALL_TESTS)
|
||||
install(TARGETS ${the_target} RUNTIME DESTINATION ${OPENCV_TEST_INSTALL_PATH} COMPONENT tests)
|
||||
|
@ -2951,6 +2951,9 @@ MatComparator::operator()(const char* expr1, const char* expr2,
|
||||
|
||||
void printVersionInfo(bool useStdOut)
|
||||
{
|
||||
// Tell CTest not to discard any output
|
||||
if(useStdOut) std::cout << "CTEST_FULL_OUTPUT" << std::endl;
|
||||
|
||||
::testing::Test::RecordProperty("cv_version", CV_VERSION);
|
||||
if(useStdOut) std::cout << "OpenCV version: " << CV_VERSION << std::endl;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user