aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/test
diff options
context:
space:
mode:
authorGravatar mstaib <mstaib@google.com>2018-06-14 14:03:23 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-14 14:04:52 -0700
commit0412a9f92d00eda3b9a1df7da6c2ba059767c108 (patch)
tree910a1dc7485894f699ca0d5d1c0c0f99606cbb7b /src/main/java/com/google/devtools/build/lib/rules/test
parent2b015c53c89815472923d8ea0c94640b7db2fa20 (diff)
Enable automatic trimming of test configuration when entering non-test rules.
Note that this is not sufficient to see caching between builds on its own; currently when any flag changes, the analysis cache is reset. A follow-up will turn off this behavior when only test flags change while trim_test_configuration is on. config_settings which examine test options are treated the same as test rules; that is, they can only be successfully analyzed at the top level or when connected to the top level by an unbroken chain of test rules. RELNOTES: None. PiperOrigin-RevId: 200614584
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/test')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestSuiteRule.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestSuiteRule.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestSuiteRule.java
index 20e1d0fc77..45ed77bf73 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestSuiteRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestSuiteRule.java
@@ -20,6 +20,7 @@ import static com.google.devtools.build.lib.syntax.Type.BOOLEAN;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
+import com.google.devtools.build.lib.analysis.test.TestConfiguration;
import com.google.devtools.build.lib.packages.RuleClass;
/** Rule object implementing "test_suite". */
@@ -27,6 +28,9 @@ public final class TestSuiteRule implements RuleDefinition {
@Override
public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) {
return builder
+ // Technically, test_suite does not use TestConfiguration. But the tests it depends on
+ // will always depend on TestConfiguration, so requiring it here simply acknowledges that.
+ .requiresConfigurationFragments(TestConfiguration.class)
.override(
attr("testonly", BOOLEAN)
.value(true)