You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by bp...@apache.org on 2015/10/10 20:35:08 UTC

celix git commit: CELIX-270: fix code coverage cmake configuration

Repository: celix
Updated Branches:
  refs/heads/develop 4fc908f61 -> 7f032d759


CELIX-270: fix code coverage cmake configuration


Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/7f032d75
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/7f032d75
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/7f032d75

Branch: refs/heads/develop
Commit: 7f032d759a692815f895ae41191a79da2b33cc84
Parents: 4fc908f
Author: Bjoern Petri <bp...@apache.org>
Authored: Sat Oct 10 20:34:34 2015 +0200
Committer: Bjoern Petri <bp...@apache.org>
Committed: Sat Oct 10 20:34:34 2015 +0200

----------------------------------------------------------------------
 .travis.yml                          |  9 ++++--
 cmake/cmake_celix/CodeCoverage.cmake | 48 +++++++++++++++----------------
 2 files changed, 30 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/celix/blob/7f032d75/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 1814464..6d4a57c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,8 @@ language: c
 
 before_install:
   - sudo apt-get update -qq
-  - sudo apt-get install -y uuid-dev libjansson-dev libxml2-dev
+  - sudo apt-get install -y uuid-dev libjansson-dev libxml2-dev lcov
+
 
 matrix:
   include:
@@ -17,7 +18,9 @@ before_script:
 
 script: 
     - cd build
-    - cmake -DBUILD_DEPLOYMENT_ADMIN=ON -DBUILD_EXAMPLES=ON -DBUILD_LOG_SERVICE=ON -DBUILD_LOG_WRITER=ON -DBUILD_REMOTE_SERVICE_ADMIN=ON -DBUILD_RSA_DISCOVERY_CONFIGURED=ON -DBUILD_RSA_DISCOVERY_ETCD=ON -DBUILD_RSA_DISCOVERY_SHM=ON -DBUILD_RSA_EXAMPLES=ON -DBUILD_RSA_REMOTE_SERVICE_ADMIN_SHM=ON -DBUILD_RSA_REMOTE_SERVICE_ADMIN_HTTP=ON -DBUILD_REMOTE_SHELL=ON -DBUILD_SHELL=ON -DBUILD_SHELL_TUI=ON -DBUILD_DEVICE_ACCESS=ON -DBUILD_DEVICE_ACCESS_EXAMPLE=ON -DBUILD_FRAMEWORK_TESTS=ON -DBUILD_UTILS-TESTS=ON -DCPPUTEST_INCLUDE_DIR=$HOME/cpputest/include -DCPPUTEST_LIBRARY=$HOME/cpputest/lib/libCppUTest.a -DCPPUTEST_EXT_INCLUDE_DIR=$HOME/cpputest/include -DCPPUTEST_EXT_LIBRARY=$HOME/cpputest/lib/libCppUTestExt.a -DCMAKE_INSTALL_PREFIX=../install ..
+    - cmake -DBUILD_DEPLOYMENT_ADMIN=ON -DBUILD_EXAMPLES=ON -DBUILD_LOG_SERVICE=ON -DBUILD_LOG_WRITER=ON -DBUILD_REMOTE_SERVICE_ADMIN=ON -DBUILD_RSA_DISCOVERY_CONFIGURED=ON -DBUILD_RSA_DISCOVERY_ETCD=ON -DBUILD_RSA_DISCOVERY_SHM=ON -DBUILD_RSA_EXAMPLES=ON -DBUILD_RSA_REMOTE_SERVICE_ADMIN_SHM=ON -DBUILD_RSA_REMOTE_SERVICE_ADMIN_HTTP=ON -DBUILD_REMOTE_SHELL=ON -DBUILD_SHELL=ON -DBUILD_SHELL_TUI=ON -DBUILD_DEVICE_ACCESS=ON -DBUILD_DEVICE_ACCESS_EXAMPLE=ON -DBUILD_FRAMEWORK_TESTS=OFF -DBUILD_UTILS-TESTS=ON -DCPPUTEST_INCLUDE_DIR=$HOME/cpputest/include -DCPPUTEST_LIBRARY=$HOME/cpputest/lib/libCppUTest.a -DCPPUTEST_EXT_INCLUDE_DIR=$HOME/cpputest/include -DCPPUTEST_EXT_LIBRARY=$HOME/cpputest/lib/libCppUTestExt.a -DENABLE_CODE_COVERAGE=ON -DCMAKE_INSTALL_PREFIX=../install ..
     - make all && make deploy && make install-all
-    - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/utils && ./utils/array_list_test && ./utils/celix_threads_test && ./utils/linked_list_test && ./utils/hash_map_test 
+    - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/utils:`pwd`/framework && make test && make coverage
+
+
 

http://git-wip-us.apache.org/repos/asf/celix/blob/7f032d75/cmake/cmake_celix/CodeCoverage.cmake
----------------------------------------------------------------------
diff --git a/cmake/cmake_celix/CodeCoverage.cmake b/cmake/cmake_celix/CodeCoverage.cmake
index 76b1f39..51b5001 100644
--- a/cmake/cmake_celix/CodeCoverage.cmake
+++ b/cmake/cmake_celix/CodeCoverage.cmake
@@ -1,19 +1,19 @@
 # Boost Software License - Version 1.0 - August 17th, 2003
-# 
+#
 # Permission is hereby granted, free of charge, to any person or organization
 # obtaining a copy of the software and accompanying documentation covered by
 # this license (the "Software") to use, reproduce, display, distribute,
 # execute, and transmit the Software, and to prepare derivative works of the
 # Software, and to permit third-parties to whom the Software is furnished to
 # do so, all subject to the following:
-# 
+#
 # The copyright notices in the Software and this entire statement, including
 # the above license grant, this restriction and the following disclaimer,
 # must be included in all copies of the Software, in whole or in part, and
 # all derivative works of the Software, unless such copies or derivative
 # works are solely in the form of machine-executable object code generated by
 # a source language processor.
-# 
+#
 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 # FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
@@ -30,7 +30,7 @@
 # 1. Copy this file into your cmake modules path
 # 2. Add the following line to your CMakeLists.txt:
 #      INCLUDE(CodeCoverage)
-# 
+#
 # 3. Use the function SETUP_TARGET_FOR_COVERAGE to create a custom make target
 #    which runs your test executable and produces a lcov code coverage report.
 #
@@ -55,37 +55,36 @@ IF(ENABLE_CODE_COVERAGE)
     FIND_PROGRAM( LCOV_PATH lcov )
     FIND_PROGRAM( GENHTML_PATH genhtml )
     FIND_PROGRAM( GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/tests)
-    
+
     IF(NOT GCOV_PATH)
     	MESSAGE(FATAL_ERROR "gcov not found! Aborting...")
     ENDIF() # NOT GCOV_PATH
-    
+
     #IF(NOT CMAKE_COMPILER_IS_GNUCXX)
     #	MESSAGE(FATAL_ERROR "Compiler is not GNU gcc! Aborting...")
     #ENDIF() # NOT CMAKE_COMPILER_IS_GNUCXX
-    
+
     IF ( NOT CMAKE_BUILD_TYPE STREQUAL "Debug" )
       MESSAGE( WARNING "Code coverage results with an optimised (non-Debug) build may be misleading" )
     ENDIF() # NOT CMAKE_BUILD_TYPE STREQUAL "Debug"
-    
+
     # Setup compiler options
     ADD_DEFINITIONS(--coverage)
     set(CMAKE_SHARED_LINKER_FLAGS "--coverage")
     set(CMAKE_EXE_LINKER_FLAGS "--coverage")
-    
+
     IF(NOT TARGET coverage)
         add_custom_target(coverage
     	    COMMAND ${CMAKE_COMMAND} -E make_directory coverage_results
-    	    COMMAND ${GENHTML_PATH} -o coverage_results coverage/*.info.cleaned
-    	    COMMAND ${CMAKE_COMMAND} -E remove_directory coverage
-    	
+          COMMAND ${GENHTML_PATH} -o coverage_results coverage/*/*.info.cleaned
+
     	    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-    	    COMMENT "Generating report.\nOpen ./${_outputname}/index.html in your browser to view the coverage report."
+          COMMENT "Generating report.\nOpen ./${_outputname}/index.html in your browser to view the coverage report."
         )
-    
+
         SET_TARGET_PROPERTIES(coverage PROPERTIES COVERAGE_TARGET_ADDED "")
     ENDIF()
-    
+
 ENDIF(ENABLE_CODE_COVERAGE)
 
 # Param _targetname     The name of new the custom make target
@@ -99,28 +98,29 @@ FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname)
     	IF(NOT LCOV_PATH)
     		MESSAGE(FATAL_ERROR "lcov not found! Aborting...")
     	ENDIF() # NOT LCOV_PATH
-    
+
     	IF(NOT GENHTML_PATH)
     		MESSAGE(FATAL_ERROR "genhtml not found! Aborting...")
     	ENDIF() # NOT GENHTML_PATH
-    
+
     	# Setup target
-    	ADD_CUSTOM_TARGET(${_targetname}
-    		
+      ADD_CUSTOM_TARGET(${_targetname}_coverage
+
     		# Cleanup lcov
     		${LCOV_PATH} --directory . --zerocounters
-    		
+
     		# Run tests
     		COMMAND ${_testrunner} ${ARGV3}
-    		
+
     		# Capturing lcov counters and generating report
     		COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/coverage
+    		COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/coverage/${_testrunner}
     		COMMAND ${LCOV_PATH} --directory . --capture --output-file ${_outputname}.info
     		COMMAND ${LCOV_PATH} --remove ${_outputname}.info 'mock/*' 'test/*' '/usr/*' --output-file ${_outputname}.info.cleaned
-    		
+
     		WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
     		COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report."
     	)
-    	ADD_DEPENDENCIES(coverage ${_targetname})
+      ADD_DEPENDENCIES(coverage ${_targetname}_coverage)
     ENDIF(ENABLE_CODE_COVERAGE)
-ENDFUNCTION() # SETUP_TARGET_FOR_COVERAGE
\ No newline at end of file
+ENDFUNCTION() # SETUP_TARGET_FOR_COVERAGE