From 6bacc0d5db885a72202cb7f80e505642a36052d4 Mon Sep 17 00:00:00 2001 From: Renato Araujo Oliveira Filho Date: Tue, 11 Sep 2012 17:57:08 -0300 Subject: Splitted qmenumodel plugin in two libraries to make it testable. Create unit test for qmenumodel library. --- cmake/lcov.cmake | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 cmake/lcov.cmake (limited to 'cmake') diff --git a/cmake/lcov.cmake b/cmake/lcov.cmake new file mode 100644 index 0000000..5758859 --- /dev/null +++ b/cmake/lcov.cmake @@ -0,0 +1,68 @@ +# - This module creates a new 'lcov' target which generates +# a coverage analysis html output. +# LCOV is a graphical front-end for GCC's coverage testing tool gcov. Please see +# http://ltp.sourceforge.net/coverage/lcov.php +# +# Usage: you must add an option to your CMakeLists.txt to build your application +# with coverage support. Then you need to include this file to the lcov target. +# +# Example: +# IF(BUILD_WITH_COVERAGE) +# SET(CMAKE_C_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage") +# SET(CMAKE_CXX_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage") +# SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov") +# include(${CMAKE_SOURCE_DIR}/cmake/lcov.cmake) +# ENDIF(BUILD_WITH_COVERAGE) +#============================================================================= +# Copyright 2010 ascolab GmbH +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distributed this file outside of CMake, substitute the full +# License text for the above reference.) + +set(REMOVE_PATTERN + q*.h + *.moc + moc_*.cxx + locale_facets.h + new) + +## lcov target +ADD_CUSTOM_TARGET(lcov) +ADD_CUSTOM_COMMAND(TARGET lcov + COMMAND mkdir -p coverage + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) +ADD_CUSTOM_COMMAND(TARGET lcov + COMMAND lcov --directory . --zerocounters + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) +ADD_CUSTOM_COMMAND(TARGET lcov + COMMAND make test + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) +ADD_CUSTOM_COMMAND(TARGET lcov + COMMAND lcov --directory . --capture --output-file ./coverage/stap_all.info --no-checksum --compat-libtool + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) +ADD_CUSTOM_COMMAND(TARGET lcov + COMMAND lcov --directory . -r ./coverage/stap_all.info ${REMOVE_PATTERN} --output-file ./coverage/stap.info + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) +ADD_CUSTOM_COMMAND(TARGET lcov + COMMAND genhtml -o ./coverage --title "Code Coverage" --legend --show-details --demangle-cpp ./coverage/stap.info + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) +ADD_CUSTOM_COMMAND(TARGET lcov + COMMAND echo "Open ${CMAKE_BINARY_DIR}/coverage/index.html to view the coverage analysis results." + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) +ADD_DEPENDENCIES(lcov helloworld) + + -- cgit v1.2.3