aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-02-10 16:01:33 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-02-11 11:48:30 +0000
commit6e638ef4e756e4d53925be580096b254d7f764eb (patch)
treec608b9d57c5a8e61bcea1c7edc934f6fc6aca024 /src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseValue.java
parent33ec191dba103474d95649ab3849cc37f00947f2 (diff)
Fix bug in TargetPatternList.equals, which was ignoring the offset.
-- MOS_MIGRATED_REVID=114326701
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.java31
1 files changed, 22 insertions, 9 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 4c864db3d8..6b702e7e60 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
@@ -128,7 +128,7 @@ public final class TargetPatternPhaseValue implements SkyValue {
@ThreadSafe
public static SkyKey key(ImmutableList<String> targetPatterns, String offset,
boolean compileOneDependency, boolean buildTestsOnly, boolean determineTests,
- TestFilter testFilter) {
+ @Nullable TestFilter testFilter) {
return new SkyKey(SkyFunctions.TARGET_PATTERN_PHASE, new TargetPatternList(
targetPatterns, offset, compileOneDependency, buildTestsOnly, determineTests, testFilter));
}
@@ -144,17 +144,20 @@ public final class TargetPatternPhaseValue implements SkyValue {
private final boolean compileOneDependency;
private final boolean buildTestsOnly;
private final boolean determineTests;
- private final TestFilter testFilter;
+ @Nullable private final TestFilter testFilter;
public TargetPatternList(ImmutableList<String> targetPatterns, String offset,
boolean compileOneDependency, boolean buildTestsOnly, boolean determineTests,
- TestFilter testFilter) {
- this.targetPatterns = targetPatterns;
- this.offset = offset;
+ @Nullable TestFilter testFilter) {
+ this.targetPatterns = Preconditions.checkNotNull(targetPatterns);
+ this.offset = Preconditions.checkNotNull(offset);
this.compileOneDependency = compileOneDependency;
this.buildTestsOnly = buildTestsOnly;
this.determineTests = determineTests;
this.testFilter = testFilter;
+ if (buildTestsOnly || determineTests) {
+ Preconditions.checkNotNull(testFilter);
+ }
}
public ImmutableList<String> getTargetPatterns() {
@@ -183,13 +186,22 @@ public final class TargetPatternPhaseValue implements SkyValue {
@Override
public String toString() {
- return targetPatterns.toString();
+ StringBuilder result = new StringBuilder();
+ result.append(targetPatterns);
+ if (!offset.isEmpty()) {
+ result.append(" OFFSET=").append(offset);
+ }
+ result.append(compileOneDependency ? " COMPILE_ONE_DEPENDENCY" : "");
+ result.append(buildTestsOnly ? " BUILD_TESTS_ONLY" : "");
+ result.append(determineTests ? " DETERMINE_TESTS" : "");
+ result.append(testFilter != null ? testFilter : "");
+ return result.toString();
}
@Override
public int hashCode() {
- return Objects.hash(targetPatterns, compileOneDependency, buildTestsOnly, determineTests,
- testFilter);
+ return Objects.hash(targetPatterns, offset, compileOneDependency, buildTestsOnly,
+ determineTests, testFilter);
}
@Override
@@ -202,10 +214,11 @@ public final class TargetPatternPhaseValue implements SkyValue {
}
TargetPatternList other = (TargetPatternList) obj;
return other.targetPatterns.equals(this.targetPatterns)
+ && other.offset.equals(this.offset)
&& other.compileOneDependency == compileOneDependency
&& other.buildTestsOnly == buildTestsOnly
&& other.determineTests == determineTests
- && other.testFilter.equals(testFilter);
+ && Objects.equals(other.testFilter, testFilter);
}
}
}