FindGTest: Teach GTEST_ADD_TESTS about TYPED_TEST
This commit is contained in:
parent
fd8bb34278
commit
1f3e95ba72
|
@ -116,19 +116,25 @@ function(GTEST_ADD_TESTS executable extra_args)
|
||||||
get_property(ARGN TARGET ${executable} PROPERTY SOURCES)
|
get_property(ARGN TARGET ${executable} PROPERTY SOURCES)
|
||||||
endif()
|
endif()
|
||||||
set(gtest_case_name_regex ".*\\( *([A-Za-z_0-9]+), *([A-Za-z_0-9]+) *\\).*")
|
set(gtest_case_name_regex ".*\\( *([A-Za-z_0-9]+), *([A-Za-z_0-9]+) *\\).*")
|
||||||
|
set(gtest_test_type_regex "(TYPED_TEST|TEST_?[FP]?)")
|
||||||
foreach(source ${ARGN})
|
foreach(source ${ARGN})
|
||||||
file(READ "${source}" contents)
|
file(READ "${source}" contents)
|
||||||
string(REGEX MATCHALL "TEST_?[FP]?\\(([A-Za-z_0-9 ,]+)\\)" found_tests ${contents})
|
string(REGEX MATCHALL "${gtest_test_type_regex}\\(([A-Za-z_0-9 ,]+)\\)" found_tests ${contents})
|
||||||
foreach(hit ${found_tests})
|
foreach(hit ${found_tests})
|
||||||
string(REGEX MATCH "TEST_?[FP]?" test_type ${hit})
|
string(REGEX MATCH "${gtest_test_type_regex}" test_type ${hit})
|
||||||
|
|
||||||
# Parameterized tests have a different signature for the filter
|
# Parameterized tests have a different signature for the filter
|
||||||
if(${test_type} STREQUAL "TEST_P")
|
if(${test_type} STREQUAL "TEST_P")
|
||||||
string(REGEX REPLACE ${gtest_case_name_regex} "*/\\1.\\2/*" test_name ${hit})
|
string(REGEX REPLACE ${gtest_case_name_regex} "*/\\1.\\2/*" test_name ${hit})
|
||||||
else()
|
elseif(${test_type} STREQUAL "TEST_F" OR ${test_type} STREQUAL "TEST")
|
||||||
string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" test_name ${hit})
|
string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" test_name ${hit})
|
||||||
endif()
|
elseif(${test_type} STREQUAL "TYPED_TEST")
|
||||||
add_test(${test_name} ${executable} --gtest_filter=${test_name} ${extra_args})
|
string(REGEX REPLACE ${gtest_case_name_regex} "\\1/*.\\2" test_name ${hit})
|
||||||
|
else()
|
||||||
|
message(WARNING "Could not parse GTest ${hit} for adding to CTest.")
|
||||||
|
continue()
|
||||||
|
endif()
|
||||||
|
add_test(${test_name} ${executable} --gtest_filter=${test_name} ${extra_args})
|
||||||
endforeach()
|
endforeach()
|
||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
Loading…
Reference in New Issue