aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar John Cater <jcater@google.com>2017-05-17 16:14:02 +0200
committerGravatar Dmitry Lomov <dslomov@google.com>2017-05-19 15:07:35 +0200
commit137760bf6283473fa116041aeef4ef8bb52b9c2e (patch)
treef62f7c5578b2637dbdf00a4b4825c9032683b2e4 /src/test/java/com
parent1e54a595b1abd96be76ca2b5d0a7e840ead172a3 (diff)
Adds ToolchainConstructor interface and implementations.
ToolchainConstructor is used to create instances of ToolchainInfo, for toolchain-aware rule sets. Part of #2219. Change-Id: Iae4e519b156910cc28704b3ca5b11e57dd561107 PiperOrigin-RevId: 156303854
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD1
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformProvidersTest.java14
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/platform/BUILD1
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/platform/PlatformCommonTest.java36
4 files changed, 39 insertions, 13 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD
index 5993fc5516..1e752eeab8 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD
@@ -11,6 +11,7 @@ java_test(
deps = [
"//src/main/java/com/google/devtools/build/lib:events",
"//src/main/java/com/google/devtools/build/lib:os_util",
+ "//src/main/java/com/google/devtools/build/lib:packages-internal",
"//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/analysis/platform",
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformProvidersTest.java b/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformProvidersTest.java
index 235532c2d8..35f60cd662 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformProvidersTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformProvidersTest.java
@@ -19,6 +19,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.testing.EqualsTester;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.events.Location;
+import com.google.devtools.build.lib.packages.ClassObjectConstructor;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -108,6 +109,7 @@ public class PlatformProvidersTest extends BuildViewTestCase {
@Test
public void toolchainInfo_equalsTester() throws Exception {
+ ClassObjectConstructor.Key key = new ClassObjectConstructor.Key() {};
ConstraintSettingInfo setting1 = ConstraintSettingInfo.create(makeLabel("//constraint:basic"));
ConstraintSettingInfo setting2 = ConstraintSettingInfo.create(makeLabel("//constraint:other"));
@@ -122,11 +124,21 @@ public class PlatformProvidersTest extends BuildViewTestCase {
.addEqualityGroup(
// Base case.
new ToolchainInfo(
+ key,
ImmutableList.of(value1, value2),
ImmutableList.of(value1, value3),
ImmutableMap.<String, Object>of("foo", "val1", "bar", "val2"),
Location.BUILTIN),
new ToolchainInfo(
+ key,
+ ImmutableList.of(value1, value2),
+ ImmutableList.of(value1, value3),
+ ImmutableMap.<String, Object>of("foo", "val1", "bar", "val2"),
+ Location.BUILTIN))
+ .addEqualityGroup(
+ // Different type.
+ new ToolchainInfo(
+ new ClassObjectConstructor.Key() {},
ImmutableList.of(value1, value2),
ImmutableList.of(value1, value3),
ImmutableMap.<String, Object>of("foo", "val1", "bar", "val2"),
@@ -134,6 +146,7 @@ public class PlatformProvidersTest extends BuildViewTestCase {
.addEqualityGroup(
// Different target constraints.
new ToolchainInfo(
+ key,
ImmutableList.of(value1, value2),
ImmutableList.of(value1, value2),
ImmutableMap.<String, Object>of("foo", "val1", "bar", "val2"),
@@ -141,6 +154,7 @@ public class PlatformProvidersTest extends BuildViewTestCase {
.addEqualityGroup(
// Different data.
new ToolchainInfo(
+ key,
ImmutableList.of(value1, value2),
ImmutableList.of(value1, value3),
ImmutableMap.<String, Object>of("foo", "val1", "bar", "val3"),
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 daf896eea9..981b5b15f2 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
@@ -11,6 +11,7 @@ java_test(
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:packages-internal",
"//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/analysis/platform",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformCommonTest.java
index f3cd8255b1..dc04069f97 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformCommonTest.java
@@ -17,11 +17,11 @@ package com.google.devtools.build.lib.rules.platform;
import static com.google.common.truth.Truth.assertThat;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
-import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.platform.ConstraintSettingInfo;
import com.google.devtools.build.lib.analysis.platform.ConstraintValueInfo;
+import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
+import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor;
import com.google.devtools.build.lib.skylark.util.SkylarkTestCase;
-import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -31,20 +31,21 @@ import org.junit.runners.JUnit4;
public class PlatformCommonTest extends SkylarkTestCase {
@Test
- public void testCreateToolchain() throws Exception {
+ public void testCreateToolchainType() throws Exception {
scratch.file(
- "test/toolchain.bzl",
+ "test/toolchain_type.bzl",
+ "test_toolchain_type = platform_common.toolchain_type()",
"def _impl(ctx):",
- " return platform_common.toolchain(",
+ " toolchain = test_toolchain_type(",
" exec_compatible_with = ctx.attr.exec_compatible_with,",
" target_compatible_with = ctx.attr.target_compatible_with,",
" extra_label = ctx.attr.extra_label,",
" extra_str = ctx.attr.extra_str,",
" )",
+ " return [toolchain]",
"test_toolchain = rule(",
" implementation = _impl,",
" attrs = {",
- " 'runs': attr.label_list(allow_files=True),",
" 'exec_compatible_with': attr.label_list(",
" providers = [platform_common.ConstraintValueInfo]),",
" 'target_compatible_with': attr.label_list(",
@@ -55,7 +56,7 @@ public class PlatformCommonTest extends SkylarkTestCase {
")");
scratch.file(
"test/BUILD",
- "load(':toolchain.bzl', 'test_toolchain')",
+ "load(':toolchain_type.bzl', 'test_toolchain')",
"constraint_setting(name = 'os')",
"constraint_value(name = 'linux',",
" constraint_setting = ':os')",
@@ -73,20 +74,29 @@ public class PlatformCommonTest extends SkylarkTestCase {
" extra_label = ':dep_rule',",
" extra_str = 'bar',",
")");
- TransitiveInfoCollection toolchainProvider = getConfiguredTarget("//test:linux_toolchain");
- assertThat(toolchainProvider).isNotNull();
- assertThat((List<?>) toolchainProvider.get("exec_compatible_with"))
+ ConfiguredTarget configuredTarget = getConfiguredTarget("//test:linux_toolchain");
+ ToolchainInfo toolchainInfo =
+ (ToolchainInfo) configuredTarget.get(ToolchainInfo.SKYLARK_IDENTIFIER);
+ assertThat(toolchainInfo).isNotNull();
+
+ assertThat(toolchainInfo.toolchainConstructorKey()).isNotNull();
+ assertThat(toolchainInfo.toolchainConstructorKey())
+ .isEqualTo(
+ new SkylarkClassObjectConstructor.SkylarkKey(
+ makeLabel("//test:toolchain_type.bzl"), "test_toolchain_type"));
+
+ assertThat(toolchainInfo.execConstraints())
.containsExactly(
ConstraintValueInfo.create(
ConstraintSettingInfo.create(makeLabel("//test:os")), makeLabel("//test:linux")));
- assertThat((List<?>) toolchainProvider.get("target_compatible_with"))
+ assertThat(toolchainInfo.targetConstraints())
.containsExactly(
ConstraintValueInfo.create(
ConstraintSettingInfo.create(makeLabel("//test:os")), makeLabel("//test:mac")));
- assertThat(((ConfiguredTarget) toolchainProvider.get("extra_label")).getLabel())
+ assertThat(((ConfiguredTarget) toolchainInfo.getValue("extra_label")).getLabel())
.isEqualTo(makeLabel("//test:dep_rule"));
- assertThat(toolchainProvider.get("extra_str")).isEqualTo("bar");
+ assertThat(toolchainInfo.getValue("extra_str")).isEqualTo("bar");
}
}