From 5a4772681d6b4f86b4b92ff90a4ecc464134ddae Mon Sep 17 00:00:00 2001 From: Adam Simpkins Date: Thu, 18 Jan 2018 20:43:19 -0800 Subject: [PATCH] cmake: enable running the tests Summary: CMake 3.9+ includes built-in support for gtest. This updates the CMake build scripts to make use of this if the GoogleTest module is available. Reviewed By: meyering Differential Revision: D6745369 fbshipit-source-id: 1ef978874b9a0ef2cc5f48ab1c7a0b55d0f1155e --- CMake/FollyFunctions.cmake | 6 ++++++ CMakeLists.txt | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CMake/FollyFunctions.cmake b/CMake/FollyFunctions.cmake index 691ac4a3..1cfc60a3 100755 --- a/CMake/FollyFunctions.cmake +++ b/CMake/FollyFunctions.cmake @@ -258,6 +258,12 @@ function(folly_define_tests) ${test_${cur_test}_headers} ${test_${cur_test}_sources} ) + if (HAVE_CMAKE_GTEST) + gtest_add_tests(TARGET ${cur_test_name} + TEST_PREFIX "${cur_test_name}." + TEST_LIST test_cases) + set_tests_properties(${test_cases} PROPERTIES TIMEOUT 120) + endif() if (NOT "x${test_${cur_test}_content_dir}" STREQUAL "x") # Copy the content directory to the output directory tree so that # tests can be run easily from Visual Studio without having to change diff --git a/CMakeLists.txt b/CMakeLists.txt index b0982f94..27834dae 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -298,8 +298,11 @@ option(BUILD_HANGING_TESTS "If enabled, compile tests that are known to hang." O option(BUILD_SLOW_TESTS "If enabled, compile tests that take a while to run in debug mode." OFF) if (BUILD_TESTS) find_package(GMock MODULE REQUIRED) + include(GoogleTest OPTIONAL RESULT_VARIABLE HAVE_CMAKE_GTEST) + enable_testing() add_library(folly_test_support + ${FOLLY_DIR}/test/common/TestMain.cpp ${FOLLY_DIR}/test/DeterministicSchedule.cpp ${FOLLY_DIR}/test/DeterministicSchedule.h ${FOLLY_DIR}/test/SingletonTestStructs.cpp @@ -354,7 +357,9 @@ if (BUILD_TESTS) TEST access_test SOURCES AccessTest.cpp TEST array_test SOURCES ArrayTest.cpp TEST bit_iterator_test SOURCES BitIteratorTest.cpp - TEST enumerate_test SOURCES EnumerateTest.cpp + # TODO: CMake's gtest_add_tests() function currently chokes on + # EnumerateTest.cpp since it uses macros to define tests. + #TEST enumerate_test SOURCES EnumerateTest.cpp TEST evicting_cache_map_test SOURCES EvictingCacheMapTest.cpp TEST foreach_test SOURCES ForeachTest.cpp TEST merge_test SOURCES MergeTest.cpp -- 2.34.1