diff options
author | 2017-08-30 18:44:20 +0200 | |
---|---|---|
committer | 2017-08-31 13:36:14 +0200 | |
commit | 2b983bdf508e010a3d4ee9dbaf446b7666749799 (patch) | |
tree | 6029afbc0bf8114044958d1d900c617e8b8a428f /src/test/java/com/google/devtools | |
parent | f12402b2627f8eeb70ee24f457efe007206f9b42 (diff) |
Rollforward of c++ toolchain-relevant BUILD file and Bazel mocking changes. That is, a c++ toolchain is added, but a Bazel dependency on that toolchain is not.
PiperOrigin-RevId: 167006332
Diffstat (limited to 'src/test/java/com/google/devtools')
4 files changed, 62 insertions, 6 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java index 183c8c05f7..83bcdad904 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java @@ -1238,8 +1238,8 @@ public class BuildViewTest extends BuildViewTestBase { useConfiguration("--experimental_dynamic_configs=on"); AnalysisResult res = update("//foo:x"); ConfiguredTarget topLevelTarget = Iterables.getOnlyElement(res.getTargetsToBuild()); - assertThat(topLevelTarget.getConfiguration().getAllFragments().keySet()).containsExactly( - ruleClassProvider.getUniversalFragment()); + assertThat(topLevelTarget.getConfiguration().getAllFragments().keySet()) + .containsExactly(ruleClassProvider.getUniversalFragment(), PlatformConfiguration.class); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java index 0defa523b1..862b213eab 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java @@ -77,7 +77,6 @@ public final class BazelMockCcSupport extends MockCcSupport { config.create( "/bazel_tools_workspace/tools/cpp/BUILD", "package(default_visibility=['//visibility:public'])", - "toolchain_type(name = 'toolchain_type')", "cc_library(name = 'stl')", "cc_library(name = 'malloc')", "cc_toolchain_suite(", @@ -123,7 +122,7 @@ public final class BazelMockCcSupport extends MockCcSupport { " linker_files = ':empty',", " module_map = 'crosstool.cppmap', supports_header_parsing = 1,", " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", - ")", + ")", "cc_toolchain(name = 'cc-compiler-armeabi-v7a', all_files = ':empty', ", " compiler_files = ':empty',", " cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", @@ -145,8 +144,27 @@ public final class BazelMockCcSupport extends MockCcSupport { "filegroup(", " name = 'link_dynamic_library',", " srcs = ['link_dynamic_library.sh'],", - ")"); - + ")", + "toolchain_type(name = 'toolchain_type')", + "toolchain(", + " name = 'toolchain_cc-compiler-piii',", + " toolchain_type = ':toolchain_type',", + " toolchain = '//third_party/crosstool/mock:cc-compiler-piii',", + " target_compatible_with = [':mock_value'],", + ")", + "toolchain(", + " name = 'dummy_cc_toolchain',", + " toolchain_type = ':toolchain_type',", + " toolchain = ':dummy_cc_toolchain_impl',", + ")", + "load(':dummy_toolchain.bzl', 'dummy_toolchain')", + "dummy_toolchain(name = 'dummy_cc_toolchain_impl')"); + config.create( + "/bazel_tools_workspace/tools/cpp/dummy_toolchain.bzl", + "def _dummy_toolchain_impl(ctx):", + " toolchain = platform_common.ToolchainInfo()", + " return [toolchain]", + "dummy_toolchain = rule(_dummy_toolchain_impl, attrs = {})"); config.create( "/bazel_tools_workspace/tools/cpp/CROSSTOOL", readCrosstoolFile()); @@ -156,6 +174,7 @@ public final class BazelMockCcSupport extends MockCcSupport { config.create("tools/cpp/link_dynamic_library.sh", ""); } MockObjcSupport.setup(config); + MockPlatformSupport.setup(config, "/bazel_tools_workspace/tools/platforms"); } @Override diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockPlatformSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockPlatformSupport.java new file mode 100644 index 0000000000..f2d89fbbe4 --- /dev/null +++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockPlatformSupport.java @@ -0,0 +1,36 @@ +// 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.packages.util; + +import java.io.IOException; + +/** Mocking support for platforms and toolchains. */ +public class MockPlatformSupport { + + /** Adds mocks for basic host and target platform. */ + public static void setup(MockToolsConfig mockToolsConfig, String platformsPath) + throws IOException { + mockToolsConfig.create( + platformsPath + "/BUILD", + "package(default_visibility=['//visibility:public'])", + "platform(", + " name = 'target_platform',", + " target_platform = True,", + ")", + "platform(", + " name = 'host_platform',", + " host_platform = True,", + ")"); + } +} diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java index 2547d354f3..2ff18b4379 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java @@ -977,6 +977,7 @@ public class CcCommonTest extends BuildViewTestCase { BazelRuleClassProvider.BAZEL_SETUP.init(builder); CoreRules.INSTANCE.init(builder); BazelRuleClassProvider.CORE_WORKSPACE_RULES.init(builder); + BazelRuleClassProvider.PLATFORM_RULES.init(builder); BazelRuleClassProvider.GENERIC_RULES.init(builder); BazelRuleClassProvider.CPP_RULES.init(builder); builder.addRuleDefinition(new OnlyCppToolchainTypeRule()); |