|
|
@@ -115,11 +115,19 @@ function(GTEST_ADD_TESTS executable extra_args)
|
|
|
# obtain sources used for building that executable
|
|
|
get_property(ARGN TARGET ${executable} PROPERTY SOURCES)
|
|
|
endif()
|
|
|
+ set(gtest_case_name_regex ".*\\( *([A-Za-z_0-9]+), *([A-Za-z_0-9]+) *\\).*")
|
|
|
foreach(source ${ARGN})
|
|
|
file(READ "${source}" contents)
|
|
|
- string(REGEX MATCHALL "TEST_?F?\\(([A-Za-z_0-9 ,]+)\\)" found_tests ${contents})
|
|
|
+ string(REGEX MATCHALL "TEST_?[FP]?\\(([A-Za-z_0-9 ,]+)\\)" found_tests ${contents})
|
|
|
foreach(hit ${found_tests})
|
|
|
- string(REGEX REPLACE ".*\\( *([A-Za-z_0-9]+), *([A-Za-z_0-9]+) *\\).*" "\\1.\\2" test_name ${hit})
|
|
|
+ string(REGEX MATCH "TEST_?[FP]?" test_type ${hit})
|
|
|
+
|
|
|
+ # Parameterized tests have a different signature for the filter
|
|
|
+ if(${test_type} STREQUAL "TEST_P")
|
|
|
+ string(REGEX REPLACE ${gtest_case_name_regex} "*/\\1.\\2/*" test_name ${hit})
|
|
|
+ else()
|
|
|
+ string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" test_name ${hit})
|
|
|
+ endif()
|
|
|
add_test(${test_name} ${executable} --gtest_filter=${test_name} ${extra_args})
|
|
|
endforeach()
|
|
|
endforeach()
|