diff options
author | dslomov <dslomov@google.com> | 2017-12-13 05:55:07 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-12-13 05:56:34 -0800 |
commit | a3b8e3972379f7e32f7c72c298ee20d8127f9aff (patch) | |
tree | dc1a64ec5513b329e81d3bd631cf92c468c47228 /src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java | |
parent | 75eca48099370df836388a6afe0279d597673f33 (diff) |
Implement --(no)expand_test_suites flag.
--noexpand_test_suites flag will suppress expansion of test_suite
targets into constituent tests, so that command-line aspects can analyze
test_suite targets.
RELNOTES: Added --(no)expand_test_suites flag.
PiperOrigin-RevId: 178892829
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java index ef28f46a32..21635b53aa 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java @@ -51,12 +51,12 @@ public final class TargetPatternPhaseValue implements SkyValue { // This field is only for the purposes of generating the LoadingPhaseCompleteEvent. // TODO(ulfjack): Support EventBus event posting in Skyframe, and remove this code again. - private final ImmutableSet<Target> testSuiteTargets; + private final ImmutableSet<Target> removedTargets; private final String workspaceName; TargetPatternPhaseValue(ImmutableSet<Target> targets, @Nullable ImmutableSet<Target> testsToRun, boolean hasError, boolean hasPostExpansionError, ImmutableSet<Target> filteredTargets, - ImmutableSet<Target> testFilteredTargets, ImmutableSet<Target> testSuiteTargets, + ImmutableSet<Target> testFilteredTargets, ImmutableSet<Target> removedTargets, String workspaceName) { this.targets = Preconditions.checkNotNull(targets); this.testsToRun = testsToRun; @@ -64,7 +64,7 @@ public final class TargetPatternPhaseValue implements SkyValue { this.hasPostExpansionError = hasPostExpansionError; this.filteredTargets = Preconditions.checkNotNull(filteredTargets); this.testFilteredTargets = Preconditions.checkNotNull(testFilteredTargets); - this.testSuiteTargets = Preconditions.checkNotNull(testSuiteTargets); + this.removedTargets = Preconditions.checkNotNull(removedTargets); this.workspaceName = workspaceName; } @@ -93,8 +93,13 @@ public final class TargetPatternPhaseValue implements SkyValue { return testFilteredTargets; } - public ImmutableSet<Target> getTestSuiteTargets() { - return testSuiteTargets; + /** + * Returns a set of targets that were present on the command line but got + * expanded during the loading phase (currently these are only test suites; + * this set is always empty when <code>--expand_test_suites=false</code>. + */ + public ImmutableSet<Target> getRemovedTargets() { + return removedTargets; } public String getWorkspaceName() { @@ -131,6 +136,7 @@ public final class TargetPatternPhaseValue implements SkyValue { boolean determineTests, ImmutableList<String> buildTargetFilter, boolean buildManualTests, + boolean expandTestSuites, @Nullable TestFilter testFilter) { return new TargetPatternPhaseKey( targetPatterns, @@ -140,6 +146,7 @@ public final class TargetPatternPhaseValue implements SkyValue { determineTests, buildTargetFilter, buildManualTests, + expandTestSuites, testFilter); } @@ -153,6 +160,7 @@ public final class TargetPatternPhaseValue implements SkyValue { private final boolean determineTests; private final ImmutableList<String> buildTargetFilter; private final boolean buildManualTests; + private final boolean expandTestSuites; @Nullable private final TestFilter testFilter; public TargetPatternPhaseKey( @@ -163,6 +171,7 @@ public final class TargetPatternPhaseValue implements SkyValue { boolean determineTests, ImmutableList<String> buildTargetFilter, boolean buildManualTests, + boolean expandTestSuites, @Nullable TestFilter testFilter) { this.targetPatterns = Preconditions.checkNotNull(targetPatterns); this.offset = Preconditions.checkNotNull(offset); @@ -171,6 +180,7 @@ public final class TargetPatternPhaseValue implements SkyValue { this.determineTests = determineTests; this.buildTargetFilter = Preconditions.checkNotNull(buildTargetFilter); this.buildManualTests = buildManualTests; + this.expandTestSuites = expandTestSuites; this.testFilter = testFilter; if (buildTestsOnly || determineTests) { Preconditions.checkNotNull(testFilter); @@ -214,6 +224,10 @@ public final class TargetPatternPhaseValue implements SkyValue { return testFilter; } + public boolean isExpandTestSuites() { + return expandTestSuites; + } + @Override public String toString() { StringBuilder result = new StringBuilder(); @@ -224,6 +238,7 @@ public final class TargetPatternPhaseValue implements SkyValue { result.append(compileOneDependency ? " COMPILE_ONE_DEPENDENCY" : ""); result.append(buildTestsOnly ? " BUILD_TESTS_ONLY" : ""); result.append(determineTests ? " DETERMINE_TESTS" : ""); + result.append(expandTestSuites ? " EXPAND_TEST_SUITES" : ""); result.append(testFilter != null ? testFilter : ""); return result.toString(); } @@ -231,8 +246,14 @@ public final class TargetPatternPhaseValue implements SkyValue { @Override public int hashCode() { return Objects.hash( - targetPatterns, offset, compileOneDependency, buildTestsOnly, determineTests, - buildManualTests, testFilter); + targetPatterns, + offset, + compileOneDependency, + buildTestsOnly, + determineTests, + buildManualTests, + expandTestSuites, + testFilter); } @Override @@ -251,6 +272,7 @@ public final class TargetPatternPhaseValue implements SkyValue { && other.determineTests == determineTests && other.buildTargetFilter.equals(buildTargetFilter) && other.buildManualTests == buildManualTests + && other.expandTestSuites == expandTestSuites && Objects.equals(other.testFilter, testFilter); } } |