diff --git a/CMakeLists.txt b/CMakeLists.txt index bff418c322..18cbaebcb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -366,17 +366,26 @@ install(DIRECTORY data/ DESTINATION share/${PROJECT}) install(FILES ${DOC_FILES} DESTINATION share/doc/${PROJECT}) INCLUDE(ExternalProject) -# Add gtest -# http://stackoverflow.com/questions/9689183/cmake-googletest + +ExternalProject_Add( + googletest-distribution + URL https://github.com/google/googletest/archive/release-1.8.0.zip + TIMEOUT 10 + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" +) + +# Specify include dir +ExternalProject_Get_Property(googletest-distribution SOURCE_DIR) +set(GOOGLETEST_DISTRIB_SOURCE_DIR "${SOURCE_DIR}") + ExternalProject_Add( googletest - URL https://github.com/google/googletest/archive/release-1.7.0.zip - TIMEOUT 10 - # # Force separate output paths for debug and release builds to allow easy - # # identification of correct lib in subsequent TARGET_LINK_LIBRARIES commands + DEPENDS googletest-distribution + DOWNLOAD_COMMAND "" + SOURCE_DIR "${GOOGLETEST_DISTRIB_SOURCE_DIR}/googletest" CMAKE_ARGS -DCMAKE_CXX_FLAGS=-m32 - # -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=ReleaseLibs - # -Dgtest_force_shared_crt=ON # Disable install step INSTALL_COMMAND "" # Wrap download, configure and build steps in a script to log output @@ -384,13 +393,14 @@ ExternalProject_Add( LOG_CONFIGURE ON LOG_BUILD ON) + # Specify include dir -ExternalProject_Get_Property(googletest source_dir) -set(GTEST_INCLUDE_DIR ${source_dir}/include) +set(GTEST_INCLUDE_DIR ${GOOGLETEST_DISTRIB_SOURCE_DIR}/googletest/include) # Library -ExternalProject_Get_Property(googletest binary_dir) -set(GTEST_LIBRARY_PATH ${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}gtest.a) +ExternalProject_Get_Property(googletest BINARY_DIR) +set(GOOGLETEST_BINARY_DIR "${BINARY_DIR}") +set(GTEST_LIBRARY_PATH ${GOOGLETEST_BINARY_DIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gtest.a) set(GTEST_LIBRARY gtest) add_library(${GTEST_LIBRARY} UNKNOWN IMPORTED) set_property(TARGET ${GTEST_LIBRARY} PROPERTY IMPORTED_LOCATION diff --git a/PaintTest/gtest.cpp b/PaintTest/gtest.cpp index b55e25f914..7f8733152a 100644 --- a/PaintTest/gtest.cpp +++ b/PaintTest/gtest.cpp @@ -15,6 +15,9 @@ #pragma endregion #ifdef USE_GTEST +#include +#include +#include #include "gtest/gtest.h" extern "C" { @@ -51,10 +54,15 @@ std::vector ReadTestCasesFromDisk() { return rides; } +inline std::string CustomParamNameFunction(const ::testing::TestParamInfo& info) { + return std::to_string(info.param); +} + INSTANTIATE_TEST_CASE_P( - Instab, // Instantiation name can be chosen arbitrarily. + ParameterizedTest, // Instantiation name can be chosen arbitrarily. RidePaintTest, - testing::ValuesIn(ReadTestCasesFromDisk()) + testing::ValuesIn(ReadTestCasesFromDisk()), + CustomParamNameFunction ); #endif // USE_GTEST