diff options
author | 2017-04-21 21:20:45 +0200 | |
---|---|---|
committer | 2017-04-24 16:51:26 +0200 | |
commit | e3d46b7a8edb49415c7a1c23550bf735df35b5da (patch) | |
tree | 3d8d21431c101af517b8d5369ca351b9b563427b /src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java | |
parent | 410147aed773a73d611635bc421c5b4564aaaac7 (diff) |
Refactor PlatformInfo.Builder to detect and report invalid configurations.
Change-Id: Ib2bbd1b35985c4ec2d1e411aea4b32af7433a426
PiperOrigin-RevId: 153856560
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java | 30 |
1 files changed, 26 insertions, 4 deletions
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 52cd7d80af..d07fe4d634 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 @@ -21,8 +21,11 @@ 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; +import com.google.devtools.build.lib.rules.platform.PlatformInfo.DuplicateConstraintException; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -30,6 +33,8 @@ import org.junit.runners.JUnit4; @RunWith(JUnit4.class) public class PlatformTest extends BuildViewTestCase { + @Rule public ExpectedException expectedException = ExpectedException.none(); + @Before public void createPlatform() throws Exception { scratch.file( @@ -137,16 +142,33 @@ public class PlatformTest extends BuildViewTestCase { } @Test - public void equalsTester() { + public void platformInfo_overlappingConstraintsError() throws DuplicateConstraintException { + ConstraintSettingInfo setting = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); + + ConstraintValueInfo value1 = ConstraintValueInfo.create(setting, makeLabel("//constraint:foo")); + ConstraintValueInfo value2 = ConstraintValueInfo.create(setting, makeLabel("//constraint:bar")); + + PlatformInfo.Builder builder = + PlatformInfo.builder().addConstraint(value1).addConstraint(value2); + + expectedException.expect(DuplicateConstraintException.class); + expectedException.expectMessage( + "Duplicate constraint_values for constraint_setting //constraint:basic: " + + "//constraint:foo, //constraint:bar"); + builder.build(); + } + + @Test + public void platformInfo_equalsTester() throws DuplicateConstraintException { ConstraintSettingInfo setting1 = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); ConstraintSettingInfo setting2 = ConstraintSettingInfo.create(makeLabel("//constraint:other")); ConstraintValueInfo value1 = - ConstraintValueInfo.create(setting1, makeLabel("//constraint:value")); + ConstraintValueInfo.create(setting1, makeLabel("//constraint:value1")); ConstraintValueInfo value2 = - ConstraintValueInfo.create(setting1, makeLabel("//constraint:otherValue")); + ConstraintValueInfo.create(setting2, makeLabel("//constraint:value2")); ConstraintValueInfo value3 = - ConstraintValueInfo.create(setting2, makeLabel("//constraint:value")); + ConstraintValueInfo.create(setting2, makeLabel("//constraint:value3")); new EqualsTester() .addEqualityGroup( |