diff options
author | cpeyser <cpeyser@google.com> | 2017-08-29 18:06:54 +0200 |
---|---|---|
committer | Vladimir Moskva <vladmos@google.com> | 2017-08-29 18:53:02 +0200 |
commit | 9d5bce66280094c0531ddfde2752e596d0d78c79 (patch) | |
tree | 891675c9be45cd4a0a236ee4b1f41271bb1a5542 /src/test/java/com/google/devtools/build/lib/packages | |
parent | 7876d97dbe7d4593855e62667fa7eba5774b561b (diff) |
Add a new toolchain type for c++. In order to do this, PlatformConfiguration is made a legal configuration fragment for every rule class.
Add a default "dummy" c++ toolchain to prevent resolution errors when legacy toolchain selection logic is used. Add toolchain mocks to java and shell tests.
PiperOrigin-RevId: 166854893
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/packages')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java | 27 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/packages/util/MockPlatformSupport.java | 36 |
2 files changed, 59 insertions, 4 deletions
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,", + ")"); + } +} |