diff options
author | John Cater <jcater@google.com> | 2017-04-22 00:27:06 +0200 |
---|---|---|
committer | Vladimir Moskva <vladmos@google.com> | 2017-04-24 16:51:30 +0200 |
commit | 28c7a7ffba65f86be6de21adf64b16c5d9c4211a (patch) | |
tree | 27ecf4f4b34143a69189f5ab62497328d0bb0617 /src/test/java/com/google/devtools/build/lib/rules | |
parent | e3d46b7a8edb49415c7a1c23550bf735df35b5da (diff) |
Add a undocumented way to define a platform that is autodetected from
the host.
Also add a single instance of that platform for standard usage.
Change-Id: I0e7a8eb3a44099076540c8d955fc0c0c70447583
PiperOrigin-RevId: 153878880
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/platform/BUILD | 2 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java | 35 |
2 files changed, 37 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 82e48b07b6..39b1617172 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 @@ -10,7 +10,9 @@ java_test( test_class = "com.google.devtools.build.lib.AllTests", deps = [ "//src/main/java/com/google/devtools/build/lib:build-base", + "//src/main/java/com/google/devtools/build/lib:os_util", "//src/main/java/com/google/devtools/build/lib:syntax", + "//src/main/java/com/google/devtools/build/lib:util", "//src/main/java/com/google/devtools/build/lib/cmdline", "//src/main/java/com/google/devtools/build/lib/rules/platform", "//src/test/java/com/google/devtools/build/lib:analysis_testutil", 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 d07fe4d634..5cb0991dfc 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 @@ -22,6 +22,8 @@ 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 com.google.devtools.build.lib.util.CPU; +import com.google.devtools.build.lib.util.OS; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -66,6 +68,39 @@ public class PlatformTest extends BuildViewTestCase { } @Test + public void testPlatform_host() throws Exception { + String currentCpu = CPU.getCurrent().getCanonicalName(); + String currentOs = OS.getCurrent().getCanonicalName(); + scratch.file( + "host/BUILD", + "constraint_setting(name = 'cpu')", + "constraint_value(name = '" + currentCpu + "', constraint_setting = ':cpu')", + "constraint_value(name = 'another_cpu', constraint_setting = ':cpu')", + "constraint_setting(name = 'os')", + "constraint_value(name = '" + currentOs + "', constraint_setting = ':os')", + "constraint_value(name = 'another_os', constraint_setting = ':os')", + "platform(name = 'host_platform',", + " host_platform = True,", + " host_cpu_constraints = [':" + currentCpu + "', ':another_cpu'],", + " host_os_constraints = [':" + currentOs + "', ':another_os'],", + ")"); + + ConfiguredTarget platform = getConfiguredTarget("//host:host_platform"); + assertThat(platform).isNotNull(); + + PlatformInfo provider = PlatformInfo.fromTarget(platform); + assertThat(provider).isNotNull(); + + // Check the CPU and OS. + ConstraintSettingInfo cpuConstraint = ConstraintSettingInfo.create(makeLabel("//host:cpu")); + ConstraintSettingInfo osConstraint = ConstraintSettingInfo.create(makeLabel("//host:os")); + assertThat(provider.constraints()) + .containsExactly( + ConstraintValueInfo.create(cpuConstraint, makeLabel("//host:" + currentCpu)), + ConstraintValueInfo.create(osConstraint, makeLabel("//host:" + currentOs))); + } + + @Test public void testPlatform_overlappingConstraintValueError() throws Exception { checkError( "constraint/overlap", |