45 lines
1.5 KiB
Bash
45 lines
1.5 KiB
Bash
#!/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"
|