tests: make code coverage for unit tests optional 66/34466/2
authorOle Troan <ot@cisco.com>
Thu, 11 Nov 2021 18:22:12 +0000 (19:22 +0100)
committerOle Troan <ot@cisco.com>
Thu, 11 Nov 2021 18:33:37 +0000 (19:33 +0100)
Add a new cmake option VPP_BUILD_TESTS_WITH_COVERAGE to enable
building unittests with clang code coverage.

Type: improvement
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I9cbe9e3031afdcd03bc8f9203d662b91677724ab
Signed-off-by: Ole Troan <ot@cisco.com>
src/CMakeLists.txt
src/plugins/nat/CMakeLists.txt
src/vat2/CMakeLists.txt

index 3966bc3..a1764f7 100644 (file)
@@ -156,6 +156,14 @@ if(VPP_ENABLE_TRAJECTORY_TRACE)
   add_compile_definitions(VLIB_BUFFER_TRACE_TRAJECTORY=1)
 endif()
 
+##############################################################################
+# unittest with clang ode coverage
+##############################################################################
+
+if("${CMAKE_VERSION}" VERSION_GREATER_EQUAL "3.13" AND "${CMAKE_C_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang")
+  option(VPP_BUILD_TESTS_WITH_COVERAGE "Build unit tests with code coverage" OFF)
+endif()
+
 ##############################################################################
 # install config
 ##############################################################################
index 2545da6..54c1537 100644 (file)
@@ -199,7 +199,7 @@ add_custom_target(test_pnat-run
   DEPENDS test_pnat
 )
 
-if("${CMAKE_VERSION}" VERSION_GREATER_EQUAL "3.13" AND "${CMAKE_C_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang")
+if(VPP_BUILD_TESTS_WITH_COVERAGE)
   set(TARGET_NAME test_pnat)
   set(COV_SOURCES ${CMAKE_SOURCE_DIR}/plugins/nat/pnat/pnat.c ${CMAKE_SOURCE_DIR}/plugins/nat/pnat/pnat_node.h ${CMAKE_SOURCE_DIR}/plugins/nat/pnat/pnat_node.c)
 
index c44d245..31d4293 100644 (file)
@@ -52,8 +52,7 @@ add_vpp_executable(test_vat2 ENABLE_EXPORTS NO_INSTALL
   rt m dl crypto
 )
 #target_link_options(test_vat2 PUBLIC "LINKER:-fsanitize=address")
-
-if("${CMAKE_VERSION}" VERSION_GREATER_EQUAL "3.13" AND "${CMAKE_C_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang")
+if(VPP_BUILD_TESTS_WITH_COVERAGE)
   set(TARGET_NAME test_vat2)
 
   message("Building with llvm Code Coverage Tools ${TARGET_NAME}")