From 6ed6374608aaf097f0ab951edf35924a47070612 Mon Sep 17 00:00:00 2001 From: emye Date: Wed, 11 Dec 2019 02:17:40 -0500 Subject: [PATCH] Test coverage (#1073) * Compiles and runs * Created gcovr reports in separate directory * Improved style and degree of coverage * Added error check for existence of gcovr * CI test fixes --- CMakeLists.txt | 2 ++ cmake/gcovr.cmake | 15 +++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 cmake/gcovr.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 45368440a6..76b0a39792 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,8 @@ project(exiv2 include(cmake/mainSetup.cmake REQUIRED) include(CTest) +include(cmake/gcovr.cmake REQUIRED) + # options and their default values option( BUILD_SHARED_LIBS "Build exiv2lib as a shared library" ON ) option( EXIV2_ENABLE_XMP "Build with XMP metadata support" ON ) diff --git a/cmake/gcovr.cmake b/cmake/gcovr.cmake new file mode 100644 index 0000000000..3c1e4067f3 --- /dev/null +++ b/cmake/gcovr.cmake @@ -0,0 +1,15 @@ +if(BUILD_WITH_COVERAGE) + + find_program (GCOVR gcovr) + + if(GCOVR) + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/coverage_output ) + add_custom_command(OUTPUT _run_gcovr_parser + POST_BUILD + COMMAND ${GCOVR} --root ${CMAKE_SOURCE_DIR} --object-dir=${CMAKE_BINARY_DIR} --html --html-details -o coverage_output/coverage.html + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + add_custom_target (coverage DEPENDS _run_gcovr_parser) + endif() + +endif(BUILD_WITH_COVERAGE)