diff options
author | John Cater <jcater@google.com> | 2017-07-05 16:12:07 -0400 |
---|---|---|
committer | John Cater <jcater@google.com> | 2017-07-06 07:13:49 -0400 |
commit | 9a8d16e338f0011e37a92d485e83ced01b24e353 (patch) | |
tree | 13986c30af1d594d732ec5c7e948f9324c5c546d /src/test | |
parent | 9cf16da1557b9d3a2956361f1bda625ed2f1b7d1 (diff) |
Remove the ToolchainConstructor class and change uses to be either a
Label or a ToolchainInfo provider.
Part of #2219.
Change-Id: Ia09070717f54eea10e1ab0303253714b58768548
PiperOrigin-RevId: 160995546
Diffstat (limited to 'src/test')
3 files changed, 20 insertions, 94 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java index c6b89f19c7..51290ba4aa 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java @@ -899,7 +899,7 @@ public class RuleClassTest extends PackageLoadingTestCase { .setMissingFragmentPolicy(missingFragmentPolicy) .build(), supportsConstraintChecking, - /*requiredToolchains=*/ ImmutableList.<ClassObjectConstructor.Key>of(), + /*requiredToolchains=*/ ImmutableList.<Label>of(), attributes); } @@ -1041,13 +1041,15 @@ public class RuleClassTest extends PackageLoadingTestCase { .factory(DUMMY_CONFIGURED_TARGET_FACTORY) .add(attr("tags", STRING_LIST)); - ClassObjectConstructor.Key toolchain1 = new ClassObjectConstructor.Key() {}; - ClassObjectConstructor.Key toolchain2 = new ClassObjectConstructor.Key() {}; - ruleClassBuilder.addRequiredToolchain(toolchain1); - ruleClassBuilder.addRequiredToolchain(toolchain2); + ruleClassBuilder.addRequiredToolchains( + ImmutableList.of( + Label.parseAbsolute("//toolchain:tc1"), Label.parseAbsolute("//toolchain:tc2"))); RuleClass ruleClass = ruleClassBuilder.build(); - assertThat(ruleClass.getRequiredToolchains()).containsExactly(toolchain1, toolchain2).inOrder(); + assertThat(ruleClass.getRequiredToolchains()) + .containsExactly( + Label.parseAbsolute("//toolchain:tc1"), Label.parseAbsolute("//toolchain:tc2")) + .inOrder(); } } 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 deleted file mode 100644 index e26389a8f8..0000000000 --- a/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformCommonTest.java +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2017 The Bazel Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -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.platform.ToolchainInfo; -import com.google.devtools.build.lib.skylark.util.SkylarkTestCase; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; - -/** Tests for {@link PlatformCommon}. */ -@RunWith(JUnit4.class) -public class PlatformCommonTest extends SkylarkTestCase { - - @Test - @Ignore("Remove this test") - public void testCreateToolchainType() throws Exception { - scratch.file( - "test/toolchain_type.bzl", - "test_toolchain_type = platform_common.toolchain_type()", - "def _impl(ctx):", - " 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 = {", - " 'exec_compatible_with': attr.label_list(", - " providers = [platform_common.ConstraintValueInfo]),", - " 'target_compatible_with': attr.label_list(", - " providers = [platform_common.ConstraintValueInfo]),", - " 'extra_label': attr.label(),", - " 'extra_str': attr.string(),", - " }", - ")"); - scratch.file( - "test/BUILD", - "load(':toolchain_type.bzl', 'test_toolchain')", - "constraint_setting(name = 'os')", - "constraint_value(name = 'linux',", - " constraint_setting = ':os')", - "constraint_value(name = 'mac',", - " constraint_setting = ':os')", - "filegroup(name = 'dep_rule')", - "test_toolchain(", - " name = 'linux_toolchain',", - " exec_compatible_with = [", - " ':linux',", - " ],", - " target_compatible_with = [", - " ':mac',", - " ],", - " extra_label = ':dep_rule',", - " extra_str = 'bar',", - ")"); - - ConfiguredTarget configuredTarget = getConfiguredTarget("//test:linux_toolchain"); - ToolchainInfo toolchainInfo = - (ToolchainInfo) configuredTarget.get(ToolchainInfo.SKYLARK_IDENTIFIER); - assertThat(toolchainInfo).isNotNull(); - } -} diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java index aef0e11052..4fa16cdee3 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java @@ -39,7 +39,6 @@ import com.google.devtools.build.lib.packages.SkylarkAspectClass; import com.google.devtools.build.lib.packages.SkylarkClassObject; import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor; import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier; -import com.google.devtools.build.lib.packages.ToolchainConstructor; import com.google.devtools.build.lib.rules.SkylarkAttr; import com.google.devtools.build.lib.rules.SkylarkAttr.Descriptor; import com.google.devtools.build.lib.rules.SkylarkFileType; @@ -410,6 +409,15 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { } @Test + public void testAspectAddToolchain() throws Exception { + scratch.file("test/BUILD", "toolchain_type(name = 'my_toolchain_type')"); + evalAndExport( + "def _impl(ctx): pass", "a1 = aspect(_impl, toolchains=['//test:my_toolchain_type'])"); + SkylarkAspect a = (SkylarkAspect) lookup("a1"); + assertThat(a.getRequiredToolchains()).containsExactly(makeLabel("//test:my_toolchain_type")); + } + + @Test public void testNonLabelAttrWithProviders() throws Exception { checkErrorContains( "unexpected keyword 'providers' in call to string", "attr.string(providers = ['a'])"); @@ -1420,13 +1428,11 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { @Test public void testRuleAddToolchain() throws Exception { + scratch.file("test/BUILD", "toolchain_type(name = 'my_toolchain_type')"); evalAndExport( - "my_toolchain_type = platform_common.toolchain_type()", - "def impl(ctx): return None", - "r1 = rule(impl, toolchains=[my_toolchain_type])"); - ToolchainConstructor toolchain = (ToolchainConstructor) lookup("my_toolchain_type"); + "def impl(ctx): return None", "r1 = rule(impl, toolchains=['//test:my_toolchain_type'])"); RuleClass c = ((RuleFunction) lookup("r1")).getRuleClass(); - assertThat(c.getRequiredToolchains()).containsExactly(toolchain.getKey()); + assertThat(c.getRequiredToolchains()).containsExactly(makeLabel("//test:my_toolchain_type")); } @Test |