aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar John Cater <jcater@google.com>2017-04-22 00:27:06 +0200
committerGravatar Vladimir Moskva <vladmos@google.com>2017-04-24 16:51:30 +0200
commit28c7a7ffba65f86be6de21adf64b16c5d9c4211a (patch)
tree27ecf4f4b34143a69189f5ab62497328d0bb0617 /src/test/java/com/google/devtools/build/lib/rules
parente3d46b7a8edb49415c7a1c23550bf735df35b5da (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/BUILD2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java35
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",