From 95f44a5947a1f340db94b9d821e16e4a373e6e69 Mon Sep 17 00:00:00 2001 From: Roni Riska Date: Mon, 19 Aug 2019 13:56:21 +0300 Subject: [PATCH] Fix Cmake file and no-op tracer creation The cmake changes include: - Set compiler to C++11 - Support for code coverage - Strict compiler options The no-op tracer incorrectly created enabled const tracer. This is fixed, now it creates a disabled tracer. Change-Id: Ia79ac082ee0cc32e395452c32796b593eda0b691 Signed-off-by: Roni Riska --- CMakeLists.txt | 23 ++++++++++++++++++----- README.md | 8 ++++++++ src/tracelib.cpp | 4 ++-- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a3b0e0d..6a8d101 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,10 +30,19 @@ HunterGate( project(tracelibcpp LANGUAGES CXX C) set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/cxx1.cmake) +add_compile_options(-Wall -Wextra -Werror) +set(CMAKE_CXX_STANDARD 11) + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif() + +set(CMAKE_CXX_FLAGS_DEBUG "-g -O0") +set(CMAKE_CXX_FLAGS_RELEASE "-O2") set (tracelibcpp_VERSION_MAJOR "0") set (tracelibcpp_VERSION_MINOR "0") -set (tracelibcpp_VERSION_MICRO "2") +set (tracelibcpp_VERSION_MICRO "3") set (tracelibcpp_VERSION_STRING "${tracelibcpp_VERSION_MAJOR}.${tracelibcpp_VERSION_MINOR}.${tracelibcpp_VERSION_MICRO}") @@ -79,6 +88,8 @@ add_library(tracelibcpp SHARED src/tracelib.cpp ) +# Library versions are on by default +# i.e. so versions option(WITH_VERSION "Support for library versioning" ON) if (WITH_VERSION) @@ -86,10 +97,6 @@ if (WITH_VERSION) SOVERSION ${tracelibcpp_VERSION_MAJOR}) endif (WITH_VERSION) -# Library versions are on by default -# i.e. so versions -option(WITH_VERSION "Support for library versioning" ON) - if (WITH_VERSION) set_target_properties(tracelibcpp PROPERTIES VERSION ${tracelibcpp_VERSION_STRING} SOVERSION ${tracelibcpp_VERSION_MAJOR}) @@ -120,6 +127,12 @@ install(TARGETS tracelibcpp # Add google test if (WITH_TESTING) + file( + DOWNLOAD https://raw.githubusercontent.com/bilke/cmake-modules/72d804cfbcf82a1e171200c9c02748fa4b7ea033/CodeCoverage.cmake + ${CMAKE_BINARY_DIR}/CodeCoverage.cmake) + + include("${CMAKE_BINARY_DIR}/CodeCoverage.cmake") + APPEND_COVERAGE_COMPILER_FLAGS() hunter_add_package(GTest) find_package(GTest CONFIG REQUIRED) add_executable(testrunner diff --git a/README.md b/README.md index 6038328..2acd2dd 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,14 @@ make check Or with output CTEST_OUTPUT_ON_FAILURE=1 make check +## Coverage +Unit testing generates also coverage data. To get that in html format run commands, assuming +you are building in `build` dir under the tracelibcpp +```shell +lcov -c --no-external --base-directory $(dirname $PWD) --directory . --output-file cov.info +genhtml cov.info +``` + ## License See [LICENSES.txt](LICENSES.txt) file. diff --git a/src/tracelib.cpp b/src/tracelib.cpp index 6ec898c..2ab6941 100644 --- a/src/tracelib.cpp +++ b/src/tracelib.cpp @@ -21,8 +21,8 @@ std::shared_ptr tracelibcpp::createTracer(std::string serviceName) { - auto config = jaegertracing::Config(false, - jaegertracing::samplers::Config("const", 1)); + auto config = jaegertracing::Config(true, + jaegertracing::samplers::Config("const", 0)); return jaegertracing::Tracer::make(serviceName, config, jaegertracing::logging::consoleLogger()); } -- 2.16.6