aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/Modules
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2021-01-26 17:00:34 +0100
committerMauro Sardara <msardara@cisco.com>2021-01-26 17:25:06 +0100
commit14e1dcd14e73a699c94bdd883c34104daed0404a (patch)
treec6d23f7601e290366feb01e36f5d01e12bfc88df /cmake/Modules
parent23b89912e3c1be309e6f61df1f8a5a01c03c8e98 (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.cmake14
-rw-r--r--cmake/Modules/GTestImport.cmake40
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