From e68899e4551a3c09a2653e72a7727683fdb35e2a Mon Sep 17 00:00:00 2001 From: Jacqueline Lee Date: Mon, 7 Nov 2022 16:33:43 -0800 Subject: [PATCH] Support --combined_report=lcov --- go/private/rules/library.bzl | 5 +++++ tests/core/coverage/coverage_test.go | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/go/private/rules/library.bzl b/go/private/rules/library.bzl index 6f96c0845a..20613b9528 100644 --- a/go/private/rules/library.bzl +++ b/go/private/rules/library.bzl @@ -49,6 +49,11 @@ def _go_library_impl(ctx): library, source, archive, + coverage_common.instrumented_files_info( + ctx, + source_attributes = ["srcs"], + dependency_attributes = ["deps", "embed"], + ), DefaultInfo( files = depset([archive.data.file]), ), diff --git a/tests/core/coverage/coverage_test.go b/tests/core/coverage/coverage_test.go index 52bda78049..a59013a8fb 100644 --- a/tests/core/coverage/coverage_test.go +++ b/tests/core/coverage/coverage_test.go @@ -173,15 +173,19 @@ func TestPanic(t *testing.T) { func TestCoverage(t *testing.T) { t.Run("without-race", func(t *testing.T) { - testCoverage(t, "set") + testCoverage(t, "set", "bazel-testlogs/a_test/coverage.dat") }) t.Run("with-race", func(t *testing.T) { - testCoverage(t, "atomic", "--@io_bazel_rules_go//go/config:race") + testCoverage(t, "atomic", "bazel-testlogs/a_test/coverage.dat", "--@io_bazel_rules_go//go/config:race") + }) + + t.Run("with-combined-lcov", func(t *testing.T) { + testCoverage(t, "set", "bazel-out/_coverage/_coverage_report.dat", "--combined_report=lcov") }) } -func testCoverage(t *testing.T, expectedCoverMode string, extraArgs ...string) { +func testCoverage(t *testing.T, expectedCoverMode string, expectedCoveragePath string, extraArgs ...string) { args := append([]string{"coverage"}, append( extraArgs, "--instrumentation_filter=-//:b", @@ -193,7 +197,7 @@ func testCoverage(t *testing.T, expectedCoverMode string, extraArgs ...string) { t.Fatal(err) } - coveragePath := filepath.FromSlash("bazel-testlogs/a_test/coverage.dat") + coveragePath := filepath.FromSlash(expectedCoveragePath) coverageData, err := ioutil.ReadFile(coveragePath) if err != nil { t.Fatal(err)