diff options
author | 2017-04-20 20:39:01 +0200 | |
---|---|---|
committer | 2017-04-24 16:49:46 +0200 | |
commit | e534bffb99b0e07d23cfff69a3151ac4d99838d9 (patch) | |
tree | ba83da274b37177eb440024133388e2f455a7b5a /src/test/java/com/google/devtools/build/lib/rules/platform | |
parent | ebd299084e0e4e37fef104619361c8e3c5ef8557 (diff) |
AutoValue and SkylarkClassObject interact badly, so remove that.
Because SkylarkClassObject declares equals, hashCode, and toString,
AutoValue doesn't bother creating those, but since these classes didn't
pass any data back to SkylarkClassObject, the defined methods don't work
properly. This shows up as all instances of a class having the same
hashCode and being equals() to each other.
Change-Id: I50734f04369231cd2141dd368b04a3f0997a7d18
PiperOrigin-RevId: 153735995
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/platform')
3 files changed, 62 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD b/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD index 37a57c6fff..82e48b07b6 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD +++ b/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD @@ -17,6 +17,7 @@ java_test( "//src/test/java/com/google/devtools/build/lib:packages_testutil", "//src/test/java/com/google/devtools/build/lib/skylark:testutil", "//third_party:guava", + "//third_party:guava-testlib", "//third_party:junit4", "//third_party:truth", ], diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/ConstraintTest.java b/src/test/java/com/google/devtools/build/lib/rules/platform/ConstraintTest.java index 13539db4bc..5029953037 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/platform/ConstraintTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/platform/ConstraintTest.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.rules.platform; import static com.google.common.truth.Truth.assertThat; +import com.google.common.testing.EqualsTester; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.cmdline.Label; @@ -95,4 +96,32 @@ public class ConstraintTest extends BuildViewTestCase { assertThat(valueLabel).isNotNull(); assertThat(valueLabel).isEqualTo(makeLabel("//constraint:foo")); } + + @Test + public void constraintSetting_equalsTester() { + new EqualsTester() + .addEqualityGroup( + ConstraintSettingInfo.create(makeLabel("//constraint:basic")), + ConstraintSettingInfo.create(makeLabel("//constraint:basic"))) + .addEqualityGroup(ConstraintSettingInfo.create(makeLabel("//constraint:other"))) + .testEquals(); + } + + @Test + public void constraintValue_equalsTester() { + ConstraintSettingInfo setting1 = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); + ConstraintSettingInfo setting2 = ConstraintSettingInfo.create(makeLabel("//constraint:other")); + new EqualsTester() + .addEqualityGroup( + // Base case. + ConstraintValueInfo.create(setting1, makeLabel("//constraint:value")), + ConstraintValueInfo.create(setting1, makeLabel("//constraint:value"))) + .addEqualityGroup( + // Different label. + ConstraintValueInfo.create(setting1, makeLabel("//constraint:otherValue"))) + .addEqualityGroup( + // Different setting. + ConstraintValueInfo.create(setting2, makeLabel("//constraint:ovalue"))) + .testEquals(); + } } diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java b/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java index 37d90523ef..52cd7d80af 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java @@ -17,6 +17,7 @@ package com.google.devtools.build.lib.rules.platform; import static com.google.common.truth.Truth.assertThat; import com.google.common.collect.ImmutableMap; +import com.google.common.testing.EqualsTester; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.cmdline.Label; @@ -134,4 +135,35 @@ public class PlatformTest extends BuildViewTestCase { assertThat(valueLabel).isNotNull(); assertThat(valueLabel).isEqualTo(makeLabel("//constraint:foo")); } + + @Test + public void equalsTester() { + ConstraintSettingInfo setting1 = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); + ConstraintSettingInfo setting2 = ConstraintSettingInfo.create(makeLabel("//constraint:other")); + + ConstraintValueInfo value1 = + ConstraintValueInfo.create(setting1, makeLabel("//constraint:value")); + ConstraintValueInfo value2 = + ConstraintValueInfo.create(setting1, makeLabel("//constraint:otherValue")); + ConstraintValueInfo value3 = + ConstraintValueInfo.create(setting2, makeLabel("//constraint:value")); + + new EqualsTester() + .addEqualityGroup( + // Base case. + PlatformInfo.builder().addConstraint(value1).addConstraint(value2).build(), + PlatformInfo.builder().addConstraint(value1).addConstraint(value2).build(), + PlatformInfo.builder() + .addConstraint(value1) + .addConstraint(value2) + .addRemoteExecutionProperty("key", "val") // execution properties are ignored. + .build()) + .addEqualityGroup( + // Extra constraint. + PlatformInfo.builder().addConstraint(value1).addConstraint(value3).build()) + .addEqualityGroup( + // Missing constraint. + PlatformInfo.builder().addConstraint(value1).build()) + .testEquals(); + } } |