From be34fa56aa59d254545d0520c7a11876f075f918 Mon Sep 17 00:00:00 2001 From: Nick Burek Date: Thu, 22 Aug 2019 16:31:58 -0700 Subject: [PATCH 1/2] Adds if check around calling catkin_add_gmock Adds if check around calling catkin_add_gmock in order to prevent the warning that is causing our builds to be "unstable". --- aws_common/cmake/DefineTestMacros.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/aws_common/cmake/DefineTestMacros.cmake b/aws_common/cmake/DefineTestMacros.cmake index af62f98..ee89b8c 100644 --- a/aws_common/cmake/DefineTestMacros.cmake +++ b/aws_common/cmake/DefineTestMacros.cmake @@ -48,7 +48,9 @@ macro(add_common_gtest target) if(catkin_FOUND) message(STATUS "Building tests using catkin") set(GTEST_LIBRARIES "") # hack so that linking against libgmock doesn't also link against libgtest - catkin_add_gmock("${target}" ${ARGN}) + if(CATKIN_ENABLE_TESTING) + catkin_add_gmock("${target}" ${ARGN}) + endif() elseif(ament_cmake_gtest_FOUND) message(STATUS "Building tests using ament") ament_add_gmock("${target}" ${ARGN}) From 9d3c2229b2adb1ce52b45fc32c6a4af849df628e Mon Sep 17 00:00:00 2001 From: burekn Date: Mon, 26 Aug 2019 08:55:37 -0700 Subject: [PATCH 2/2] fixup --- aws_common/CMakeLists.txt | 71 +++++++++++++------------ aws_common/cmake/DefineTestMacros.cmake | 8 +++ 2 files changed, 45 insertions(+), 34 deletions(-) diff --git a/aws_common/CMakeLists.txt b/aws_common/CMakeLists.txt index 24be9a4..ba4de32 100644 --- a/aws_common/CMakeLists.txt +++ b/aws_common/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.0.2) project(aws_common) +include(${CMAKE_SOURCE_DIR}/cmake/DefineTestMacros.cmake) + SET(AWS_COMMON_VERSION 1.0.0) add_compile_options(-std=c++11) @@ -61,41 +63,42 @@ target_include_directories(${PROJECT_NAME} PUBLIC ############# ### Tests ### ############# -enable_testing() -include(${CMAKE_SOURCE_DIR}/cmake/DefineTestMacros.cmake) find_common_test_packages() -add_common_gtest(test_aws_log_system test/sdk_utils/logging/aws_log_system_test.cpp) -add_common_gtest(test_throttling_manager test/sdk_utils/throttling_manager_test.cpp) -add_common_gtest(test_client_configuration_provider test/sdk_utils/client_configuration_provider_test.cpp) -add_common_gtest(test_service_credentials_provider test/sdk_utils/auth/service_credentials_provider_test.cpp) - -add_library(test_utils test/sdk_utils/parameter_reader_mock.cpp) -target_include_directories(test_utils PUBLIC ${PROJECT_SOURCE_DIR}/test/include) - -set(LIBS_FOR_TESTS - ${PROJECT_NAME} - test_utils - ${aws_common_LIBRARIES} - ${GMOCK_LIBRARY} - pthread -) - -set(HEADERS_FOR_TESTS - ${aws_common_INCLUDE_DIRS} - ${AWSSDK_INCLUDE_DIR} -) - -macro(link_test_target target_name) - if(TARGET ${target_name}) - target_include_directories("${target_name}" PRIVATE ${HEADERS_FOR_TESTS}) - target_link_libraries("${target_name}" ${LIBS_FOR_TESTS}) - endif() -endmacro() - -link_test_target(test_aws_log_system) -link_test_target(test_throttling_manager) -link_test_target(test_client_configuration_provider) -link_test_target(test_service_credentials_provider) +if (aws_common_TESTING_ENABLED) + enable_testing() + add_common_gtest(test_aws_log_system test/sdk_utils/logging/aws_log_system_test.cpp) + add_common_gtest(test_throttling_manager test/sdk_utils/throttling_manager_test.cpp) + add_common_gtest(test_client_configuration_provider test/sdk_utils/client_configuration_provider_test.cpp) + add_common_gtest(test_service_credentials_provider test/sdk_utils/auth/service_credentials_provider_test.cpp) + + add_library(test_utils test/sdk_utils/parameter_reader_mock.cpp) + target_include_directories(test_utils PUBLIC ${PROJECT_SOURCE_DIR}/test/include) + + set(LIBS_FOR_TESTS + ${PROJECT_NAME} + test_utils + ${aws_common_LIBRARIES} + ${GMOCK_LIBRARY} + pthread + ) + + set(HEADERS_FOR_TESTS + ${aws_common_INCLUDE_DIRS} + ${AWSSDK_INCLUDE_DIR} + ) + + macro(link_test_target target_name) + if(TARGET ${target_name}) + target_include_directories("${target_name}" PRIVATE ${HEADERS_FOR_TESTS}) + target_link_libraries("${target_name}" ${LIBS_FOR_TESTS}) + endif() + endmacro() + + link_test_target(test_aws_log_system) + link_test_target(test_throttling_manager) + link_test_target(test_client_configuration_provider) + link_test_target(test_service_credentials_provider) +endif() ############# ## Install ## diff --git a/aws_common/cmake/DefineTestMacros.cmake b/aws_common/cmake/DefineTestMacros.cmake index ee89b8c..018c217 100644 --- a/aws_common/cmake/DefineTestMacros.cmake +++ b/aws_common/cmake/DefineTestMacros.cmake @@ -27,6 +27,8 @@ macro(find_catkin) endmacro() macro(find_common_test_packages) + # Loads the proper testing package (either catkin or ament) depending on what's available during + # the build find_catkin() find_package(ament_cmake_gtest QUIET) if(catkin_FOUND) @@ -37,6 +39,12 @@ macro(find_common_test_packages) message(WARNING "Could not find catkin or ament!") endif() + if(CATKIN_ENABLE_TESTING OR BUILD_TESTING) + set(aws_common_TESTING_ENABLED 1) + else() + set(aws_common_TESTING_ENABLED 0) + endif() + if(DEFINED GMOCK_LIBRARIES) set(GMOCK_LIBRARY ${GMOCK_LIBRARIES}) else()