Skip to content

Commit

Permalink
Merge topic 'FindGTest-typed-test'
Browse files Browse the repository at this point in the history
1f3e95b FindGTest: Teach GTEST_ADD_TESTS about TYPED_TEST
  • Loading branch information
bradking authored and kwrobot committed Apr 17, 2014
2 parents fe27c99 + 1f3e95b commit 51a8a37
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions Modules/FindGTest.cmake
Expand Up @@ -116,19 +116,25 @@ function(GTEST_ADD_TESTS executable extra_args)
get_property(ARGN TARGET ${executable} PROPERTY SOURCES)
endif()
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})
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})
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
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})
# 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})
elseif(${test_type} STREQUAL "TEST_F" OR ${test_type} STREQUAL "TEST")
string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" test_name ${hit})
elseif(${test_type} STREQUAL "TYPED_TEST")
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()
endfunction()
Expand Down

0 comments on commit 51a8a37

Please sign in to comment.