#!/bin/sh # Run after building dbc.pro with GCC coverage and CONFIG+=dbc_qt. set -eu if [ "$#" -ne 2 ]; then echo "Usage: $0 SOURCE_DIRECTORY BUILD_DIRECTORY" >&2 exit 2 fi dbc_source_dir=$(cd "$1" && pwd) dbc_build_dir=$(cd "$2" && pwd) cd "$dbc_build_dir" if [ ! -f core/dbc_decoder.gcno ] || [ ! -f qt/dbc_tree_model.gcno ]; then echo "Build with --coverage and CONFIG+=dbc_qt before generating the report." >&2 exit 1 fi mkdir -p standalone "${CXX:-c++}" -std=c++17 -O0 -g --coverage -fprofile-abs-path \ -I"$dbc_source_dir/core" \ "$dbc_source_dir/tests/tree_node_test.cpp" \ "$dbc_source_dir/core/tree_node.cpp" \ "$dbc_source_dir/core/dbc_tree_builder.cpp" \ -o standalone/tree_node_tests lcov --capture --initial --directory . --branch-coverage \ --include "$dbc_source_dir/core/*" --include "$dbc_source_dir/qt/*" \ --output-file baseline.info --quiet lcov --zerocounters --directory . --quiet ./tests/dbc_tests ./tests/dbc_model_tests ./standalone/tree_node_tests lcov --capture --directory . --branch-coverage \ --include "$dbc_source_dir/core/*" --include "$dbc_source_dir/qt/*" \ --output-file executed.info --quiet lcov --add-tracefile baseline.info --add-tracefile executed.info \ --branch-coverage --output-file coverage.info --quiet genhtml coverage.info --branch-coverage --demangle-cpp \ --output-directory html --quiet lcov --summary coverage.info --branch-coverage echo "HTML report: $dbc_build_dir/html/index.html"