From 07bd58a0e87e0a517d8c3e166f423f37ace22624 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Tue, 21 Oct 2014 18:45:47 +0400 Subject: [PATCH 1/5] turn on testing support in root binary directory --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 771938ff18..b298d9702f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,6 +58,8 @@ if(DEFINED CMAKE_BUILD_TYPE AND CMAKE_VERSION VERSION_GREATER "2.8") set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} ) endif() +enable_testing() + project(OpenCV CXX C) if(MSVC) From 0c57dc2e00ba0cd9fa650ad8ea3e85526a65cafb Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Tue, 21 Oct 2014 18:48:46 +0400 Subject: [PATCH 2/5] rewrite add_test command for accuracy tests: * use new syntax introduced in CMake 2.8.0 * set OPENCV_TEST_DATA_PATH enviroment property --- cmake/OpenCVModule.cmake | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index 4a82402d34..0f9f134850 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -812,11 +812,15 @@ 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}") - ocv_add_precompiled_headers(${the_target}) + + if(CMAKE_VERSION VERSION_GREATER "2.8" AND OPENCV_TEST_DATA_PATH) + add_test(NAME ${the_target} COMMAND ${the_target}) + + set_tests_properties(${the_target} PROPERTIES + ENVIRONMENT "OPENCV_TEST_DATA_PATH=${OPENCV_TEST_DATA_PATH}") + endif() + else(OCV_DEPENDENCIES_FOUND) # TODO: warn about unsatisfied dependencies endif(OCV_DEPENDENCIES_FOUND) From f44c29ad7d75da35ed05cd36d947c519bf34fb73 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Tue, 21 Oct 2014 18:49:53 +0400 Subject: [PATCH 3/5] disable CTest target for opencv_test_viz: opencv_test_viz creates windows and waits until user close them, it is not appropriate for automatic testing --- cmake/OpenCVModule.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index 0f9f134850..f7a982953b 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -814,7 +814,7 @@ function(ocv_add_accuracy_tests) ocv_add_precompiled_headers(${the_target}) - if(CMAKE_VERSION VERSION_GREATER "2.8" AND OPENCV_TEST_DATA_PATH) + if(CMAKE_VERSION VERSION_GREATER "2.8" AND OPENCV_TEST_DATA_PATH AND NOT "${the_target}" MATCHES "opencv_test_viz") add_test(NAME ${the_target} COMMAND ${the_target}) set_tests_properties(${the_target} PROPERTIES From edf54ac3a97d3b9acf383197a853fc7475e5f88c Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Tue, 21 Oct 2014 18:50:38 +0400 Subject: [PATCH 4/5] add CTest targets for sanity tests --- cmake/OpenCVModule.cmake | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index f7a982953b..d2e50d57a4 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -761,6 +761,14 @@ function(ocv_add_perf_tests) ocv_add_precompiled_headers(${the_target}) + if(CMAKE_VERSION VERSION_GREATER "2.8" AND OPENCV_TEST_DATA_PATH) + add_test(NAME ${the_target} COMMAND ${the_target} --perf_min_samples=1 --perf_force_samples=1 --perf_verify_sanity) + + set_tests_properties(${the_target} PROPERTIES + LABELS "Sanity" + ENVIRONMENT "OPENCV_TEST_DATA_PATH=${OPENCV_TEST_DATA_PATH}") + endif() + else(OCV_DEPENDENCIES_FOUND) # TODO: warn about unsatisfied dependencies endif(OCV_DEPENDENCIES_FOUND) @@ -818,6 +826,7 @@ function(ocv_add_accuracy_tests) add_test(NAME ${the_target} COMMAND ${the_target}) set_tests_properties(${the_target} PROPERTIES + LABELS "Accuracy" ENVIRONMENT "OPENCV_TEST_DATA_PATH=${OPENCV_TEST_DATA_PATH}") endif() From 4f8a1213bd5ac7ef8d064ff25619d7d3a4c486a1 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Tue, 21 Oct 2014 18:51:02 +0400 Subject: [PATCH 5/5] determine test category (Public vs Extra) based on module location --- cmake/OpenCVModule.cmake | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index d2e50d57a4..92dbdec3fc 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -764,8 +764,16 @@ function(ocv_add_perf_tests) if(CMAKE_VERSION VERSION_GREATER "2.8" AND OPENCV_TEST_DATA_PATH) add_test(NAME ${the_target} COMMAND ${the_target} --perf_min_samples=1 --perf_force_samples=1 --perf_verify_sanity) + get_filename_component(cur_modules_loc "${CMAKE_CURRENT_SOURCE_DIR}/.." ABSOLUTE) + get_filename_component(default_modules_loc "${CMAKE_SOURCE_DIR}/modules" ABSOLUTE) + if("${cur_modules_loc}" STREQUAL "${default_modules_loc}") + set(test_category "Public") + else() + set(test_category "Extra") + endif() + set_tests_properties(${the_target} PROPERTIES - LABELS "Sanity" + LABELS "${test_category};Sanity" ENVIRONMENT "OPENCV_TEST_DATA_PATH=${OPENCV_TEST_DATA_PATH}") endif() @@ -825,8 +833,16 @@ function(ocv_add_accuracy_tests) if(CMAKE_VERSION VERSION_GREATER "2.8" AND OPENCV_TEST_DATA_PATH AND NOT "${the_target}" MATCHES "opencv_test_viz") add_test(NAME ${the_target} COMMAND ${the_target}) + get_filename_component(cur_modules_loc "${CMAKE_CURRENT_SOURCE_DIR}/.." ABSOLUTE) + get_filename_component(default_modules_loc "${CMAKE_SOURCE_DIR}/modules" ABSOLUTE) + if("${cur_modules_loc}" STREQUAL "${default_modules_loc}") + set(test_category "Public") + else() + set(test_category "Extra") + endif() + set_tests_properties(${the_target} PROPERTIES - LABELS "Accuracy" + LABELS "${test_category};Accuracy" ENVIRONMENT "OPENCV_TEST_DATA_PATH=${OPENCV_TEST_DATA_PATH}") endif()