Skip to content

Commit

Permalink
use -fno-exceptions with gcov
Browse files Browse the repository at this point in the history
Change-Id: I6df51846f4e3da70cc2d53b6e4e6e2b9be36a2f7
  • Loading branch information
oliverlee committed Dec 24, 2023
1 parent aeff88f commit 337cd31
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 10 deletions.
3 changes: 0 additions & 3 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,4 @@ build:verbose-clang-tidy --@bazel_clang_tidy//:clang_tidy_executable=//tools:ver
build:clang-tidy --config=clang-tidy-base
build:clang-tidy --@bazel_clang_tidy//:clang_tidy_executable=@llvm_toolchain//:clang-tidy

# Clang will fail for tests that replace malloc and has worse coverage results than GCC
coverage --extra_toolchains=//toolchain:gcc

try-import %workspace%/user.bazelrc
9 changes: 9 additions & 0 deletions .github/codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
coverage:
status:
project:
default:
target: 100%
threshold: 1%
patch:
default:
target: 100%
2 changes: 0 additions & 2 deletions rules/lcov.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ def lcov(
"--combined_report=lcov",
"--experimental_generate_llvm_lcov",
"--test_output=errors",
# https://github.com/bazelbuild/bazel/issues/13919
"--test_env=COVERAGE_GCOV_OPTIONS=-b",
],
lcov_tool = "lcov",
lcov_opts = []):
Expand Down
4 changes: 3 additions & 1 deletion test/expect_message_test.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include "skytest/skytest.hpp"

#include <exception>

auto main() -> int
{
using namespace ::skytest::literals;
Expand All @@ -19,7 +21,7 @@ auto main() -> int

"not invoked on success"_test = [] {
return expect(true, [](auto&) {
throw std::runtime_error{"should not be invoked"};
std::terminate();
});
};
}
26 changes: 22 additions & 4 deletions tools/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -110,27 +110,45 @@ incompatible_with_sanitizers(
deps = ["//tools:maybe_incompatible_clang"],
)

lcov_attrs = {
"instrumented_targets": ["//:skytest"],
"test_targets": ["//test/..."],
"coverage_opts": [
"--combined_report=lcov",
"--experimental_generate_llvm_lcov",
"--test_output=errors",
"--extra_toolchains=//toolchain:gcc",
# https://github.com/bazelbuild/bazel/issues/13919
"--test_env=COVERAGE_GCOV_OPTIONS=-b",
#https://stackoverflow.com/questions/42003783/lcov-gcov-branch-coverage-with-c-producing-branches-all-over-the-place#comment71453756_42078101
"--cxxopt=-fno-exceptions",
],
}

lcov(
name = "lcov_list",
instrumented_targets = ["//:skytest"],
coverage_opts = lcov_attrs["coverage_opts"],
instrumented_targets = lcov_attrs["instrumented_targets"],
lcov_opts = [
"--rc lcov_branch_coverage=1",
"--list",
],
test_targets = ["//test/..."],
test_targets = lcov_attrs["test_targets"],
)

lcov(
name = "lcov_html",
instrumented_targets = ["//:skytest"],
coverage_opts = lcov_attrs["coverage_opts"],
instrumented_targets = lcov_attrs["instrumented_targets"],
lcov_opts = [
"--show-details",
"--keep-descriptions",
"--branch-coverage",
"--highlight",
"--demangle-cpp",
"--missed",
"--dark-mode",
],
lcov_tool = "genhtml",
test_targets = ["//test/..."],
test_targets = lcov_attrs["test_targets"],
)

0 comments on commit 337cd31

Please sign in to comment.