diff options
author | 2018-06-14 14:03:23 -0700 | |
---|---|---|
committer | 2018-06-14 14:04:52 -0700 | |
commit | 0412a9f92d00eda3b9a1df7da6c2ba059767c108 (patch) | |
tree | 910a1dc7485894f699ca0d5d1c0c0f99606cbb7b /src/main/java/com/google/devtools/build/lib/rules/test | |
parent | 2b015c53c89815472923d8ea0c94640b7db2fa20 (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.java | 4 |
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) |