aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java38
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java52
-rw-r--r--src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/runtime/commands/CleanCommandRecommendsAsyncTest.java4
4 files changed, 61 insertions, 37 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index e63c5db18f..ab616e5c90 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -630,38 +630,7 @@ public class BuildConfiguration implements BuildConfigurationApi {
)
public boolean experimentalJavaCoverage;
- @Option(
- name = "coverage_support",
- converter = LabelConverter.class,
- defaultValue = "@bazel_tools//tools/test:coverage_support",
- documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
- effectTags = {
- OptionEffectTag.CHANGES_INPUTS,
- OptionEffectTag.AFFECTS_OUTPUTS,
- OptionEffectTag.LOADING_AND_ANALYSIS
- },
- help =
- "Location of support files that are required on the inputs of every test action "
- + "that collects code coverage. Defaults to '//tools/test:coverage_support'."
- )
- public Label coverageSupport;
- @Option(
- name = "coverage_report_generator",
- converter = LabelConverter.class,
- defaultValue = "@bazel_tools//tools/test:coverage_report_generator",
- documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
- effectTags = {
- OptionEffectTag.CHANGES_INPUTS,
- OptionEffectTag.AFFECTS_OUTPUTS,
- OptionEffectTag.LOADING_AND_ANALYSIS
- },
- help =
- "Location of the binary that is used to generate coverage reports. This must "
- + "currently be a filegroup that contains a single file, the binary. Defaults to "
- + "'//tools/test:coverage_report_generator'."
- )
- public Label coverageReportGenerator;
@Option(
name = "build_runfile_manifests",
@@ -994,12 +963,7 @@ public class BuildConfiguration implements BuildConfigurationApi {
return host;
}
- @Override
- public Map<String, Set<Label>> getDefaultsLabels() {
- return ImmutableMap.<String, Set<Label>>of(
- "coverage_support", ImmutableSet.of(coverageSupport),
- "coverage_report_generator", ImmutableSet.of(coverageReportGenerator));
- }
+
}
private final String checksum;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
index 026263cff3..6247fde3cc 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
@@ -14,10 +14,12 @@
package com.google.devtools.build.lib.analysis.test;
+import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Fragment;
+import com.google.devtools.build.lib.analysis.config.BuildConfiguration.LabelConverter;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
@@ -35,6 +37,8 @@ import com.google.devtools.common.options.OptionsParsingException;
import com.google.devtools.common.options.TriState;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
+import java.util.Set;
/** Test-related options. */
@AutoCodec
@@ -132,6 +136,46 @@ public class TestConfiguration extends Fragment {
+ "This option can be passed multiple times. "
)
public List<PerLabelOptions> runsPerTest;
+
+ @Option(
+ name = "coverage_support",
+ converter = LabelConverter.class,
+ defaultValue = "@bazel_tools//tools/test:coverage_support",
+ documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
+ effectTags = {
+ OptionEffectTag.CHANGES_INPUTS,
+ OptionEffectTag.AFFECTS_OUTPUTS,
+ OptionEffectTag.LOADING_AND_ANALYSIS
+ },
+ help =
+ "Location of support files that are required on the inputs of every test action "
+ + "that collects code coverage. Defaults to '//tools/test:coverage_support'."
+ )
+ public Label coverageSupport;
+
+ @Option(
+ name = "coverage_report_generator",
+ converter = LabelConverter.class,
+ defaultValue = "@bazel_tools//tools/test:coverage_report_generator",
+ documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
+ effectTags = {
+ OptionEffectTag.CHANGES_INPUTS,
+ OptionEffectTag.AFFECTS_OUTPUTS,
+ OptionEffectTag.LOADING_AND_ANALYSIS
+ },
+ help =
+ "Location of the binary that is used to generate coverage reports. This must "
+ + "currently be a filegroup that contains a single file, the binary. Defaults to "
+ + "'//tools/test:coverage_report_generator'."
+ )
+ public Label coverageReportGenerator;
+
+ @Override
+ public Map<String, Set<Label>> getDefaultsLabels() {
+ return ImmutableMap.<String, Set<Label>>of(
+ "coverage_support", ImmutableSet.of(coverageSupport),
+ "coverage_report_generator", ImmutableSet.of(coverageReportGenerator));
+ }
}
/** Configuration loader for test options */
@@ -187,6 +231,14 @@ public class TestConfiguration extends Fragment {
return options.testShardingStrategy;
}
+ public Label getCoverageSupport(){
+ return options.coverageSupport;
+ }
+
+ public Label getCoverageReportGenerator(){
+ return options.coverageReportGenerator;
+ }
+
/**
* @return number of times the given test should run. If the test doesn't match any of the
* filters, runs it once.
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java b/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java
index 30d41ca009..0d397318a3 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/CommandInterruptionTest.java
@@ -23,6 +23,7 @@ import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
+import com.google.devtools.build.lib.analysis.test.TestConfiguration;
import com.google.devtools.build.lib.bazel.rules.DefaultBuildOptionsForDiffing;
import com.google.devtools.build.lib.testutil.Scratch;
import com.google.devtools.build.lib.testutil.TestConstants;
@@ -367,6 +368,9 @@ public final class CommandInterruptionTest {
builder.setToolsRepository(TestConstants.TOOLS_REPOSITORY);
// Can't create a defaults package without the base options in there!
builder.addConfigurationOptions(BuildConfiguration.Options.class);
+ // Need to have some defaults values to satisfy DefaultsPackage.getContent()
+ // TODO(dbabkin): remove when DefaultsPackage been deprecated b/79239052
+ builder.addConfigurationOptions(TestConfiguration.TestOptions.class);
}
})
.addBlazeModule(
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/commands/CleanCommandRecommendsAsyncTest.java b/src/test/java/com/google/devtools/build/lib/runtime/commands/CleanCommandRecommendsAsyncTest.java
index 6f6ff5d665..1272619d5e 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/commands/CleanCommandRecommendsAsyncTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/commands/CleanCommandRecommendsAsyncTest.java
@@ -21,6 +21,7 @@ import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
+import com.google.devtools.build.lib.analysis.test.TestConfiguration;
import com.google.devtools.build.lib.bazel.rules.DefaultBuildOptionsForDiffing;
import com.google.devtools.build.lib.runtime.BlazeCommandDispatcher;
import com.google.devtools.build.lib.runtime.BlazeModule;
@@ -96,6 +97,9 @@ public class CleanCommandRecommendsAsyncTest {
public void initializeRuleClasses(ConfiguredRuleClassProvider.Builder builder) {
// We must add these options so that the defaults package can be created.
builder.addConfigurationOptions(BuildConfiguration.Options.class);
+ // Need to have some defaults values to satisfy DefaultsPackage.getContent()
+ // TODO(dbabkin): remove when DefaultsPackage been deprecated b/792390529
+ builder.addConfigurationOptions(TestConfiguration.TestOptions.class);
// The tools repository is needed for createGlobals
builder.setToolsRepository(TestConstants.TOOLS_REPOSITORY);
}