From 934c4fd4a4a96093a2cd0b08cf619bef04d0b582 Mon Sep 17 00:00:00 2001 From: Ulf Adams Date: Thu, 12 Dec 2019 12:29:42 -0800 Subject: [PATCH] Delegate coverage tools to @remote_coverage_tools Requires: - #10379 is merged - a new remote coverage tools zip pushed - coverage.WORKSPACE updated to the new tools This changes the @bazel_tools//tools/test/BUILD file to fully delegate to the @remote_coverage_tools repository, which must contain rules for :lcov_merger and :coverage_report_generator. This makes the @remote_coverage_tools reference self-contained, which allows overriding the tools using --override_repository, and allows independently replacing or fixing them. Progress on #4685. Change-Id: I321c62332f00d910f4ccfb3244d63e60627d59ad Closes #10383. Change-Id: I321c62332f00d910f4ccfb3244d63e60627d59ad PiperOrigin-RevId: 285246323 --- .../build/lib/analysis/BaseRuleClasses.java | 2 +- .../build/lib/analysis/mock/BazelAnalysisMock.java | 8 ++------ .../rules/sh/BazelShTestConfiguredTargetTest.java | 3 +-- src/test/shell/bazel/bazel_coverage_java_test.sh | 2 +- tools/BUILD | 1 - tools/test/BUILD | 5 ----- tools/test/BUILD.tools | 9 +++++++-- .../google/devtools/coverageoutputgenerator/BUILD | 8 -------- .../devtools/coverageoutputgenerator/BUILD.tools | 14 -------------- 9 files changed, 12 insertions(+), 40 deletions(-) delete mode 100644 tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator/BUILD.tools diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java index d13b0f82b60e19..18daf4dd5094f2 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java @@ -104,7 +104,7 @@ public static LabelLateBoundDefault coverageSupportAttribute( "//tools/test:coverage_report_generator"; private static final String DEFAULT_COVERAGE_OUTPUT_GENERATOR_VALUE = - "@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main"; + "@bazel_tools//tools/test:lcov_merger"; @AutoCodec static final Resolver COVERAGE_REPORT_GENERATOR_CONFIGURATION_RESOLVER = diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java index 39c602c65ea66b..c4b763d1a2ce61 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java @@ -228,12 +228,8 @@ public void setupMockClient(MockToolsConfig config, List workspaceConten "filegroup(name = 'collect_coverage', srcs = ['collect_coverage.sh'])", "filegroup(name = 'collect_cc_coverage', srcs = ['collect_cc_coverage.sh'])", "filegroup(name='coverage_support', srcs=['collect_coverage.sh'])", - "filegroup(name = 'coverage_report_generator', srcs = ['coverage_report_generator.sh'])"); - - config.create( - "/bazel_tools_workspace/tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator/BUILD", - "filegroup(name='srcs', srcs = glob(['**']))", - "filegroup(name='Main', srcs = ['Main.java'])"); + "filegroup(name = 'coverage_report_generator', srcs = ['coverage_report_generator.sh'])", + "filegroup(name = 'lcov_merger', srcs = ['lcov_merger.sh'])"); // Use an alias package group to allow for modification at the simpler path config.create( diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestConfiguredTargetTest.java index bc6a71237bf756..d41b94d15dccf4 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestConfiguredTargetTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShTestConfiguredTargetTest.java @@ -40,7 +40,6 @@ public void testCoverageOutputGeneratorCoverageMode() throws Exception { reporter.removeHandler(failFastHandler); ConfiguredTarget ct = getConfiguredTarget("//sh/test:foo_test"); assertThat(getRuleContext(ct).getPrerequisite(":lcov_merger", Mode.HOST).getLabel().toString()) - .isEqualTo( - "@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main"); + .isEqualTo("@bazel_tools//tools/test:lcov_merger"); } } diff --git a/src/test/shell/bazel/bazel_coverage_java_test.sh b/src/test/shell/bazel/bazel_coverage_java_test.sh index c2b741e9512184..00fc472250eb04 100755 --- a/src/test/shell/bazel/bazel_coverage_java_test.sh +++ b/src/test/shell/bazel/bazel_coverage_java_test.sh @@ -235,7 +235,7 @@ public class TestCollatz { } EOF - bazel coverage --test_output=all //:test --coverage_report_generator=@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main --combined_report=lcov &>$TEST_log \ + bazel coverage --test_output=all //:test --coverage_report_generator=@bazel_tools//tools/test:coverage_report_generator --combined_report=lcov &>$TEST_log \ || echo "Coverage for //:test failed" cat < result.dat diff --git a/tools/BUILD b/tools/BUILD index 15c409cfabd764..141b343ae6ad97 100644 --- a/tools/BUILD +++ b/tools/BUILD @@ -61,7 +61,6 @@ filegroup( "//tools/python:embedded_tools", "//tools/runfiles:embedded_tools", "//tools/test:embedded_tools", - "//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:embedded_tools", "//tools/osx/crosstool:srcs", "//tools/osx:srcs", "//tools/sh:embedded_tools", diff --git a/tools/test/BUILD b/tools/test/BUILD index f01ac6785f5883..738e8fd9771bdc 100644 --- a/tools/test/BUILD +++ b/tools/test/BUILD @@ -35,11 +35,6 @@ filegroup( srcs = ["collect_cc_coverage.sh"], ) -filegroup( - name = "coverage_report_generator", - srcs = ["@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main"], -) - # Test wrapper binary to run tests on Windows. # This target just wraps the actual code in "tw_lib" to make it into a binary. # See https://github.com/bazelbuild/bazel/issues/5508 diff --git a/tools/test/BUILD.tools b/tools/test/BUILD.tools index e0b1186119d2ea..899258fd41ab47 100644 --- a/tools/test/BUILD.tools +++ b/tools/test/BUILD.tools @@ -33,9 +33,14 @@ filegroup( srcs = ["collect_coverage.sh"], ) -filegroup( +alias( name = "coverage_report_generator", - srcs = ["@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main"], + actual = "@remote_coverage_tools//:coverage_report_generator", +) + +alias( + name = "lcov_merger", + actual = "@remote_coverage_tools//:lcov_merger", ) filegroup( diff --git a/tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator/BUILD b/tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator/BUILD index db22b5ce5ba1ef..32aeb39f52dd99 100644 --- a/tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator/BUILD +++ b/tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator/BUILD @@ -172,11 +172,3 @@ filegroup( srcs = glob(["**"]), visibility = ["//visibility:public"], ) - -filegroup( - name = "embedded_tools", - srcs = [ - "BUILD.tools", - ], - visibility = ["//visibility:public"], -) diff --git a/tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator/BUILD.tools b/tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator/BUILD.tools deleted file mode 100644 index 262df19dda8258..00000000000000 --- a/tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator/BUILD.tools +++ /dev/null @@ -1,14 +0,0 @@ -package(default_visibility = ["//visibility:public"]) -load("@rules_java//java:defs.bzl", "java_binary", "java_import") - -java_import( - name = "all_lcov_merger_lib", - jars = ["@remote_coverage_tools//:all_lcov_merger_tools_deploy.jar"], -) - -java_binary( - name = "Main", - create_executable = 1, - main_class = "com.google.devtools.coverageoutputgenerator.Main", - runtime_deps = [":all_lcov_merger_lib"], -)