diff options
author | 2021-01-26 17:00:34 +0100 | |
---|---|---|
committer | 2021-01-26 17:25:06 +0100 | |
commit | 14e1dcd14e73a699c94bdd883c34104daed0404a (patch) | |
tree | c6d23f7601e290366feb01e36f5d01e12bfc88df /cmake/Modules | |
parent | 23b89912e3c1be309e6f61df1f8a5a01c03c8e98 (diff) |
[HICN-677] Add support for unit testing across all subprojects
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Change-Id: I7fa6442f53860fe8dcda3c17b63cfca15aa26c63
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'cmake/Modules')
-rw-r--r-- | cmake/Modules/BuildMacros.cmake | 14 | ||||
-rw-r--r-- | cmake/Modules/GTestImport.cmake | 40 |
2 files changed, 40 insertions, 14 deletions
diff --git a/cmake/Modules/BuildMacros.cmake b/cmake/Modules/BuildMacros.cmake index d360d26af..ed95259b2 100644 --- a/cmake/Modules/BuildMacros.cmake +++ b/cmake/Modules/BuildMacros.cmake @@ -217,19 +217,5 @@ macro(build_library lib) endif() endmacro() -add_custom_target(${PROJECT_NAME}_cleanup_profiling_data - "find" "." "-name" "*.gcda" "-delete" - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Cleanup previous profiling data." -) - -macro(AddTest testFile) - add_executable(${ARGV0} ${ARGV0}.cc) - target_link_libraries(${ARGV0} ${TARGET_TRANSPORT_STATIC} ${GTEST_LIBRARIES}) - add_test(${ARGV0} ${ARGV0}) - set_target_properties(${ARGV0} PROPERTIES FOLDER Test) - add_dependencies(${ARGV0} ${PROJECT_NAME}_cleanup_profiling_data) -endmacro(AddTest) - include(IosMacros) include(WindowsMacros) diff --git a/cmake/Modules/GTestImport.cmake b/cmake/Modules/GTestImport.cmake new file mode 100644 index 000000000..4e2e18dc9 --- /dev/null +++ b/cmake/Modules/GTestImport.cmake @@ -0,0 +1,40 @@ +# Copyright (c) 2020 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################## +# Download and install GoogleTest + +include(ExternalProject) +ExternalProject_Add(gtest + URL https://github.com/google/googletest/archive/v1.10.x.zip + PREFIX ${CMAKE_BINARY_DIR}/gtest + INSTALL_COMMAND "" +) + +ExternalProject_Get_Property(gtest source_dir binary_dir) + +message (STATUS "GTest include dir: ${source_dir}/googlemock/include ${source_dir}/googletest/include)") +message (STATUS "GTest libs: ${binary_dir}/lib/libgmock_main.a ${binary_dir}/lib/libgmock.a ${binary_dir}/lib/libgtest_main.a ${binary_dir}/lib/libgtest.a") + +set(GTEST_INCLUDE_DIRS ${source_dir}/googlemock/include ${source_dir}/googletest/include) +set(GTEST_LIBRARIES ${binary_dir}/lib/libgmock_main.a ${binary_dir}/lib/libgmock.a ${binary_dir}/lib/libgtest_main.a ${binary_dir}/lib/libgtest.a) + +macro(add_test_internal test) + if(${CMAKE_VERSION} VERSION_GREATER "3.10.0") + gtest_discover_tests(${test}-bin TEST_PREFIX new:) + else() + add_test(NAME ${test}-bin COMMAND ${test}) + endif() +endmacro(add_test_internal) + +enable_testing()
\ No newline at end of file |