tests: move various supporting code under tests/support (#2183)
tests: move various supporting code under tests/support
* Move subject classes under support
* Switch to using rules_testing DefaultInfo subject
* Move fake cc toolchains under tests/support/cc_toolchains (these
are used in several places, not just tests/cc)
* Make literal references of old //tests/cc locations use the
constants from support.bzl
This is both for code clarity (support code being in a common location),
but also to make it easier to import the support code for the subset
of tests Google imports and runs.
diff --git a/tests/base_rules/base_tests.bzl b/tests/base_rules/base_tests.bzl
index fb95c15..ae298ed 100644
--- a/tests/base_rules/base_tests.bzl
+++ b/tests/base_rules/base_tests.bzl
@@ -18,8 +18,8 @@
load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS", rt_util = "util")
load("//python:defs.bzl", "PyInfo")
load("//python/private:reexports.bzl", "BuiltinPyInfo") # buildifier: disable=bzl-visibility
-load("//tests/base_rules:py_info_subject.bzl", "py_info_subject")
load("//tests/base_rules:util.bzl", pt_util = "util")
+load("//tests/support:py_info_subject.bzl", "py_info_subject")
_tests = []
diff --git a/tests/base_rules/precompile/precompile_tests.bzl b/tests/base_rules/precompile/precompile_tests.bzl
index 5599f61..62659fc 100644
--- a/tests/base_rules/precompile/precompile_tests.bzl
+++ b/tests/base_rules/precompile/precompile_tests.bzl
@@ -23,7 +23,7 @@
load("//python:py_info.bzl", "PyInfo")
load("//python:py_library.bzl", "py_library")
load("//python:py_test.bzl", "py_test")
-load("//tests/base_rules:py_info_subject.bzl", "py_info_subject")
+load("//tests/support:py_info_subject.bzl", "py_info_subject")
load(
"//tests/support:support.bzl",
"CC_TOOLCHAIN",
diff --git a/tests/base_rules/py_executable_base_tests.bzl b/tests/base_rules/py_executable_base_tests.bzl
index 1f805cb..873349f 100644
--- a/tests/base_rules/py_executable_base_tests.bzl
+++ b/tests/base_rules/py_executable_base_tests.bzl
@@ -23,7 +23,7 @@
load("//tests/base_rules:base_tests.bzl", "create_base_tests")
load("//tests/base_rules:util.bzl", "WINDOWS_ATTR", pt_util = "util")
load("//tests/support:py_executable_info_subject.bzl", "PyExecutableInfoSubject")
-load("//tests/support:support.bzl", "LINUX_X86_64", "WINDOWS_X86_64")
+load("//tests/support:support.bzl", "CC_TOOLCHAIN", "CROSSTOOL_TOP", "LINUX_X86_64", "WINDOWS_X86_64")
_BuiltinPyRuntimeInfo = PyRuntimeInfo
@@ -51,8 +51,8 @@
# platforms.
"//command_line_option:build_python_zip": "true",
"//command_line_option:cpu": "windows_x86_64",
- "//command_line_option:crosstool_top": Label("//tests/cc:cc_toolchain_suite"),
- "//command_line_option:extra_toolchains": [str(Label("//tests/cc:all"))],
+ "//command_line_option:crosstool_top": CROSSTOOL_TOP,
+ "//command_line_option:extra_toolchains": [CC_TOOLCHAIN],
"//command_line_option:platforms": [WINDOWS_X86_64],
},
attr_values = {"target_compatible_with": target_compatible_with},
@@ -96,8 +96,8 @@
# platforms.
"//command_line_option:build_python_zip": "true",
"//command_line_option:cpu": "linux_x86_64",
- "//command_line_option:crosstool_top": Label("//tests/cc:cc_toolchain_suite"),
- "//command_line_option:extra_toolchains": [str(Label("//tests/cc:all"))],
+ "//command_line_option:crosstool_top": CROSSTOOL_TOP,
+ "//command_line_option:extra_toolchains": [CC_TOOLCHAIN],
"//command_line_option:platforms": [LINUX_X86_64],
},
attr_values = {"target_compatible_with": target_compatible_with},
diff --git a/tests/base_rules/py_test/py_test_tests.bzl b/tests/base_rules/py_test/py_test_tests.bzl
index c77bd7e..6bd31ed 100644
--- a/tests/base_rules/py_test/py_test_tests.bzl
+++ b/tests/base_rules/py_test/py_test_tests.bzl
@@ -21,12 +21,7 @@
"create_executable_tests",
)
load("//tests/base_rules:util.bzl", pt_util = "util")
-load("//tests/support:support.bzl", "LINUX_X86_64", "MAC_X86_64")
-
-# Explicit Label() calls are required so that it resolves in @rules_python
-# context instead of @rules_testing context.
-_FAKE_CC_TOOLCHAIN = Label("//tests/cc:cc_toolchain_suite")
-_FAKE_CC_TOOLCHAINS = [str(Label("//tests/cc:all"))]
+load("//tests/support:support.bzl", "CC_TOOLCHAIN", "CROSSTOOL_TOP", "LINUX_X86_64", "MAC_X86_64")
# The Windows CI currently runs as root, which breaks when
# the analysis tests try to install (but not use, because
@@ -63,8 +58,8 @@
target = name + "_subject",
config_settings = {
"//command_line_option:cpu": "darwin_x86_64",
- "//command_line_option:crosstool_top": _FAKE_CC_TOOLCHAIN,
- "//command_line_option:extra_toolchains": _FAKE_CC_TOOLCHAINS,
+ "//command_line_option:crosstool_top": CROSSTOOL_TOP,
+ "//command_line_option:extra_toolchains": CC_TOOLCHAIN,
"//command_line_option:platforms": [MAC_X86_64],
},
attr_values = _SKIP_WINDOWS,
@@ -96,8 +91,8 @@
target = name + "_subject",
config_settings = {
"//command_line_option:cpu": "k8",
- "//command_line_option:crosstool_top": _FAKE_CC_TOOLCHAIN,
- "//command_line_option:extra_toolchains": _FAKE_CC_TOOLCHAINS,
+ "//command_line_option:crosstool_top": CROSSTOOL_TOP,
+ "//command_line_option:extra_toolchains": CC_TOOLCHAIN,
"//command_line_option:platforms": [LINUX_X86_64],
},
attr_values = _SKIP_WINDOWS,
diff --git a/tests/cc/BUILD.bazel b/tests/cc/BUILD.bazel
index 889f9e0..aa21042 100644
--- a/tests/cc/BUILD.bazel
+++ b/tests/cc/BUILD.bazel
@@ -11,140 +11,3 @@
# 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.
-
-load("@rules_cc//cc:defs.bzl", "cc_toolchain", "cc_toolchain_suite")
-load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
-load("//python/cc:py_cc_toolchain.bzl", "py_cc_toolchain")
-load(":fake_cc_toolchain_config.bzl", "fake_cc_toolchain_config")
-
-package(default_visibility = ["//:__subpackages__"])
-
-exports_files(["fake_header.h"])
-
-filegroup(
- name = "libpython",
- srcs = ["libpython-fake.so"],
- tags = PREVENT_IMPLICIT_BUILDING_TAGS,
-)
-
-toolchain(
- name = "fake_py_cc_toolchain",
- tags = PREVENT_IMPLICIT_BUILDING_TAGS,
- toolchain = ":fake_py_cc_toolchain_impl",
- toolchain_type = "@rules_python//python/cc:toolchain_type",
-)
-
-py_cc_toolchain(
- name = "fake_py_cc_toolchain_impl",
- headers = ":fake_headers",
- libs = ":fake_libs",
- python_version = "3.999",
- tags = PREVENT_IMPLICIT_BUILDING_TAGS,
-)
-
-# buildifier: disable=native-cc
-cc_library(
- name = "fake_headers",
- hdrs = ["fake_header.h"],
- data = ["data.txt"],
- includes = ["fake_include"],
- tags = PREVENT_IMPLICIT_BUILDING_TAGS,
-)
-
-# buildifier: disable=native-cc
-cc_library(
- name = "fake_libs",
- srcs = ["libpython3.so"],
- data = ["libdata.txt"],
- tags = PREVENT_IMPLICIT_BUILDING_TAGS,
-)
-
-cc_toolchain_suite(
- name = "cc_toolchain_suite",
- tags = ["manual"],
- toolchains = {
- "darwin_x86_64": ":mac_toolchain",
- "k8": ":linux_toolchain",
- "windows_x86_64": ":windows_toolchain",
- },
-)
-
-filegroup(name = "empty")
-
-cc_toolchain(
- name = "mac_toolchain",
- all_files = ":empty",
- compiler_files = ":empty",
- dwp_files = ":empty",
- linker_files = ":empty",
- objcopy_files = ":empty",
- strip_files = ":empty",
- supports_param_files = 0,
- toolchain_config = ":mac_toolchain_config",
- toolchain_identifier = "mac-toolchain",
-)
-
-toolchain(
- name = "mac_toolchain_definition",
- target_compatible_with = ["@platforms//os:macos"],
- toolchain = ":mac_toolchain",
- toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
-)
-
-fake_cc_toolchain_config(
- name = "mac_toolchain_config",
- target_cpu = "darwin_x86_64",
- toolchain_identifier = "mac-toolchain",
-)
-
-cc_toolchain(
- name = "linux_toolchain",
- all_files = ":empty",
- compiler_files = ":empty",
- dwp_files = ":empty",
- linker_files = ":empty",
- objcopy_files = ":empty",
- strip_files = ":empty",
- supports_param_files = 0,
- toolchain_config = ":linux_toolchain_config",
- toolchain_identifier = "linux-toolchain",
-)
-
-toolchain(
- name = "linux_toolchain_definition",
- target_compatible_with = ["@platforms//os:linux"],
- toolchain = ":linux_toolchain",
- toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
-)
-
-fake_cc_toolchain_config(
- name = "linux_toolchain_config",
- target_cpu = "k8",
- toolchain_identifier = "linux-toolchain",
-)
-
-cc_toolchain(
- name = "windows_toolchain",
- all_files = ":empty",
- compiler_files = ":empty",
- dwp_files = ":empty",
- linker_files = ":empty",
- objcopy_files = ":empty",
- strip_files = ":empty",
- supports_param_files = 0,
- toolchain_config = ":windows_toolchain_config",
- toolchain_identifier = "windows-toolchain",
-)
-
-toolchain(
- name = "windows_toolchain_definition",
- target_compatible_with = ["@platforms//os:windows"],
- toolchain = ":windows_toolchain",
- toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
-)
-
-fake_cc_toolchain_config(
- name = "windows_toolchain_config",
- target_cpu = "windows_x86_64",
- toolchain_identifier = "windows-toolchain",
-)
diff --git a/tests/cc/current_py_cc_headers/current_py_cc_headers_tests.bzl b/tests/cc/current_py_cc_headers/current_py_cc_headers_tests.bzl
index 9aeec38..8bbdace 100644
--- a/tests/cc/current_py_cc_headers/current_py_cc_headers_tests.bzl
+++ b/tests/cc/current_py_cc_headers/current_py_cc_headers_tests.bzl
@@ -17,7 +17,8 @@
load("@rules_cc//cc:defs.bzl", "CcInfo")
load("@rules_testing//lib:analysis_test.bzl", "analysis_test", "test_suite")
load("@rules_testing//lib:truth.bzl", "matching")
-load("//tests:cc_info_subject.bzl", "cc_info_subject")
+load("//tests/support:cc_info_subject.bzl", "cc_info_subject")
+load("//tests/support:support.bzl", "CC_TOOLCHAIN")
_tests = []
@@ -27,11 +28,11 @@
impl = _test_current_toolchain_headers_impl,
target = "//python/cc:current_py_cc_headers",
config_settings = {
- "//command_line_option:extra_toolchains": [str(Label("//tests/cc:all"))],
+ "//command_line_option:extra_toolchains": [CC_TOOLCHAIN],
},
attrs = {
"header": attr.label(
- default = "//tests/cc:fake_header.h",
+ default = "//tests/support/cc_toolchains:fake_header.h",
allow_single_file = True,
),
},
@@ -58,7 +59,7 @@
# Check that the forward DefaultInfo looks correct
env.expect.that_target(target).runfiles().contains_predicate(
- matching.str_matches("*/cc/data.txt"),
+ matching.str_matches("*/cc_toolchains/data.txt"),
)
_tests.append(_test_current_toolchain_headers)
diff --git a/tests/cc/current_py_cc_libs/current_py_cc_libs_tests.bzl b/tests/cc/current_py_cc_libs/current_py_cc_libs_tests.bzl
index 44615ee..4a08ce7 100644
--- a/tests/cc/current_py_cc_libs/current_py_cc_libs_tests.bzl
+++ b/tests/cc/current_py_cc_libs/current_py_cc_libs_tests.bzl
@@ -17,7 +17,7 @@
load("@rules_cc//cc:defs.bzl", "CcInfo")
load("@rules_testing//lib:analysis_test.bzl", "analysis_test", "test_suite")
load("@rules_testing//lib:truth.bzl", "matching")
-load("//tests:cc_info_subject.bzl", "cc_info_subject")
+load("//tests/support:cc_info_subject.bzl", "cc_info_subject")
_tests = []
@@ -27,11 +27,11 @@
impl = _test_current_toolchain_libs_impl,
target = "//python/cc:current_py_cc_libs",
config_settings = {
- "//command_line_option:extra_toolchains": [str(Label("//tests/cc:all"))],
+ "//command_line_option:extra_toolchains": [str(Label("//tests/support/cc_toolchains:all"))],
},
attrs = {
"lib": attr.label(
- default = "//tests/cc:libpython",
+ default = "//tests/support/cc_toolchains:libpython",
allow_single_file = True,
),
},
diff --git a/tests/cc/py_cc_toolchain/py_cc_toolchain_tests.bzl b/tests/cc/py_cc_toolchain/py_cc_toolchain_tests.bzl
index fe83bf2..fcc520e 100644
--- a/tests/cc/py_cc_toolchain/py_cc_toolchain_tests.bzl
+++ b/tests/cc/py_cc_toolchain/py_cc_toolchain_tests.bzl
@@ -16,9 +16,8 @@
load("@rules_testing//lib:analysis_test.bzl", "analysis_test", "test_suite")
load("@rules_testing//lib:truth.bzl", "matching", "subjects")
-load("//tests:cc_info_subject.bzl", "cc_info_subject")
-load("//tests:default_info_subject.bzl", "default_info_subject")
-load("//tests:py_cc_toolchain_info_subject.bzl", "PyCcToolchainInfoSubject")
+load("//tests/support:cc_info_subject.bzl", "cc_info_subject")
+load("//tests/support:py_cc_toolchain_info_subject.bzl", "PyCcToolchainInfoSubject")
_tests = []
@@ -26,10 +25,10 @@
analysis_test(
name = name,
impl = _py_cc_toolchain_test_impl,
- target = "//tests/cc:fake_py_cc_toolchain_impl",
+ target = "//tests/support/cc_toolchains:fake_py_cc_toolchain_impl",
attrs = {
"header": attr.label(
- default = "//tests/cc:fake_header.h",
+ default = "//tests/support/cc_toolchains:fake_header.h",
allow_single_file = True,
),
},
@@ -63,15 +62,9 @@
matching.str_matches("*/fake_include"),
])
- # TODO: Once subjects.default_info is available, do
- # default_info = headers_providers.get("DefaultInfo", factory=subjects.default_info)
- # https://github.com/bazelbuild/rules_python/issues/1297
- default_info = default_info_subject(
- headers_providers.get("DefaultInfo", factory = lambda v, meta: v),
- meta = env.expect.meta.derive(expr = "default_info"),
- )
+ default_info = headers_providers.get("DefaultInfo", factory = subjects.default_info)
default_info.runfiles().contains_predicate(
- matching.str_matches("*/cc/data.txt"),
+ matching.str_matches("*/cc_toolchains/data.txt"),
)
libs_providers = toolchain.libs().providers_map()
@@ -82,7 +75,7 @@
cc_info.linking_context().linker_inputs().has_size(2)
default_info = libs_providers.get("DefaultInfo", factory = subjects.default_info)
- default_info.runfiles().contains("{workspace}/tests/cc/libdata.txt")
+ default_info.runfiles().contains("{workspace}/tests/support/cc_toolchains/libdata.txt")
default_info.runfiles().contains_predicate(
matching.str_matches("/libpython3."),
)
diff --git a/tests/config_settings/transition/multi_version_tests.bzl b/tests/config_settings/transition/multi_version_tests.bzl
index 6659da5..367837b 100644
--- a/tests/config_settings/transition/multi_version_tests.bzl
+++ b/tests/config_settings/transition/multi_version_tests.bzl
@@ -20,6 +20,7 @@
load("//python/config_settings:transition.bzl", py_binary_transitioned = "py_binary", py_test_transitioned = "py_test")
load("//python/private:reexports.bzl", "BuiltinPyInfo") # buildifier: disable=bzl-visibility
load("//python/private:util.bzl", "IS_BAZEL_7_OR_HIGHER") # buildifier: disable=bzl-visibility
+load("//tests/support:support.bzl", "CC_TOOLCHAIN")
# NOTE @aignas 2024-06-04: we are using here something that is registered in the MODULE.Bazel
# and if you find tests failing, it could be because of the toolchain resolution issues here.
@@ -87,7 +88,7 @@
impl = impl,
config_settings = {
"//command_line_option:build_python_zip": build_python_zip,
- "//command_line_option:extra_toolchains": "//tests/cc:all",
+ "//command_line_option:extra_toolchains": CC_TOOLCHAIN,
"//command_line_option:platforms": str(Label("//tests/support:windows_x86_64")),
},
)
diff --git a/tests/py_runtime/py_runtime_tests.bzl b/tests/py_runtime/py_runtime_tests.bzl
index b47923d..596cace 100644
--- a/tests/py_runtime/py_runtime_tests.bzl
+++ b/tests/py_runtime/py_runtime_tests.bzl
@@ -20,8 +20,8 @@
load("@rules_testing//lib:util.bzl", rt_util = "util")
load("//python:py_runtime.bzl", "py_runtime")
load("//python:py_runtime_info.bzl", "PyRuntimeInfo")
-load("//tests:py_runtime_info_subject.bzl", "py_runtime_info_subject")
load("//tests/base_rules:util.bzl", br_util = "util")
+load("//tests/support:py_runtime_info_subject.bzl", "py_runtime_info_subject")
_tests = []
diff --git a/tests/py_runtime_pair/py_runtime_pair_tests.bzl b/tests/py_runtime_pair/py_runtime_pair_tests.bzl
index 236f1ba..e89e080 100644
--- a/tests/py_runtime_pair/py_runtime_pair_tests.bzl
+++ b/tests/py_runtime_pair/py_runtime_pair_tests.bzl
@@ -21,7 +21,8 @@
load("//python:py_runtime.bzl", "py_runtime")
load("//python:py_runtime_pair.bzl", "py_runtime_pair")
load("//python/private:reexports.bzl", "BuiltinPyRuntimeInfo") # buildifier: disable=bzl-visibility
-load("//tests:py_runtime_info_subject.bzl", "py_runtime_info_subject")
+load("//tests/support:py_runtime_info_subject.bzl", "py_runtime_info_subject")
+load("//tests/support:support.bzl", "CC_TOOLCHAIN")
def _toolchain_factory(value, meta):
return subjects.struct(
@@ -129,7 +130,7 @@
config_settings = {
"//command_line_option:extra_toolchains": [
"//tests/py_runtime_pair:{}_toolchain".format(name),
- "//tests/cc:all",
+ CC_TOOLCHAIN,
],
},
)
diff --git a/tests/runtime_env_toolchain/BUILD.bazel b/tests/runtime_env_toolchain/BUILD.bazel
index 99bdbab..afc6b58 100644
--- a/tests/runtime_env_toolchain/BUILD.bazel
+++ b/tests/runtime_env_toolchain/BUILD.bazel
@@ -13,6 +13,7 @@
# limitations under the License.
load("//tests/support:sh_py_run_test.bzl", "py_reconfig_test")
+load("//tests/support:support.bzl", "CC_TOOLCHAIN")
load(":runtime_env_toolchain_tests.bzl", "runtime_env_toolchain_test_suite")
runtime_env_toolchain_test_suite(name = "runtime_env_toolchain_tests")
@@ -26,7 +27,7 @@
extra_toolchains = [
"//python/runtime_env_toolchains:all",
# Necessary for RBE CI
- "//tests/cc:all",
+ CC_TOOLCHAIN,
],
main = "toolchain_runs_test.py",
deps = ["//python/runfiles"],
diff --git a/tests/cc_info_subject.bzl b/tests/support/cc_info_subject.bzl
similarity index 100%
rename from tests/cc_info_subject.bzl
rename to tests/support/cc_info_subject.bzl
diff --git a/tests/support/cc_toolchains/BUILD.bazel b/tests/support/cc_toolchains/BUILD.bazel
new file mode 100644
index 0000000..889f9e0
--- /dev/null
+++ b/tests/support/cc_toolchains/BUILD.bazel
@@ -0,0 +1,150 @@
+# Copyright 2023 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.
+
+load("@rules_cc//cc:defs.bzl", "cc_toolchain", "cc_toolchain_suite")
+load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
+load("//python/cc:py_cc_toolchain.bzl", "py_cc_toolchain")
+load(":fake_cc_toolchain_config.bzl", "fake_cc_toolchain_config")
+
+package(default_visibility = ["//:__subpackages__"])
+
+exports_files(["fake_header.h"])
+
+filegroup(
+ name = "libpython",
+ srcs = ["libpython-fake.so"],
+ tags = PREVENT_IMPLICIT_BUILDING_TAGS,
+)
+
+toolchain(
+ name = "fake_py_cc_toolchain",
+ tags = PREVENT_IMPLICIT_BUILDING_TAGS,
+ toolchain = ":fake_py_cc_toolchain_impl",
+ toolchain_type = "@rules_python//python/cc:toolchain_type",
+)
+
+py_cc_toolchain(
+ name = "fake_py_cc_toolchain_impl",
+ headers = ":fake_headers",
+ libs = ":fake_libs",
+ python_version = "3.999",
+ tags = PREVENT_IMPLICIT_BUILDING_TAGS,
+)
+
+# buildifier: disable=native-cc
+cc_library(
+ name = "fake_headers",
+ hdrs = ["fake_header.h"],
+ data = ["data.txt"],
+ includes = ["fake_include"],
+ tags = PREVENT_IMPLICIT_BUILDING_TAGS,
+)
+
+# buildifier: disable=native-cc
+cc_library(
+ name = "fake_libs",
+ srcs = ["libpython3.so"],
+ data = ["libdata.txt"],
+ tags = PREVENT_IMPLICIT_BUILDING_TAGS,
+)
+
+cc_toolchain_suite(
+ name = "cc_toolchain_suite",
+ tags = ["manual"],
+ toolchains = {
+ "darwin_x86_64": ":mac_toolchain",
+ "k8": ":linux_toolchain",
+ "windows_x86_64": ":windows_toolchain",
+ },
+)
+
+filegroup(name = "empty")
+
+cc_toolchain(
+ name = "mac_toolchain",
+ all_files = ":empty",
+ compiler_files = ":empty",
+ dwp_files = ":empty",
+ linker_files = ":empty",
+ objcopy_files = ":empty",
+ strip_files = ":empty",
+ supports_param_files = 0,
+ toolchain_config = ":mac_toolchain_config",
+ toolchain_identifier = "mac-toolchain",
+)
+
+toolchain(
+ name = "mac_toolchain_definition",
+ target_compatible_with = ["@platforms//os:macos"],
+ toolchain = ":mac_toolchain",
+ toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
+)
+
+fake_cc_toolchain_config(
+ name = "mac_toolchain_config",
+ target_cpu = "darwin_x86_64",
+ toolchain_identifier = "mac-toolchain",
+)
+
+cc_toolchain(
+ name = "linux_toolchain",
+ all_files = ":empty",
+ compiler_files = ":empty",
+ dwp_files = ":empty",
+ linker_files = ":empty",
+ objcopy_files = ":empty",
+ strip_files = ":empty",
+ supports_param_files = 0,
+ toolchain_config = ":linux_toolchain_config",
+ toolchain_identifier = "linux-toolchain",
+)
+
+toolchain(
+ name = "linux_toolchain_definition",
+ target_compatible_with = ["@platforms//os:linux"],
+ toolchain = ":linux_toolchain",
+ toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
+)
+
+fake_cc_toolchain_config(
+ name = "linux_toolchain_config",
+ target_cpu = "k8",
+ toolchain_identifier = "linux-toolchain",
+)
+
+cc_toolchain(
+ name = "windows_toolchain",
+ all_files = ":empty",
+ compiler_files = ":empty",
+ dwp_files = ":empty",
+ linker_files = ":empty",
+ objcopy_files = ":empty",
+ strip_files = ":empty",
+ supports_param_files = 0,
+ toolchain_config = ":windows_toolchain_config",
+ toolchain_identifier = "windows-toolchain",
+)
+
+toolchain(
+ name = "windows_toolchain_definition",
+ target_compatible_with = ["@platforms//os:windows"],
+ toolchain = ":windows_toolchain",
+ toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
+)
+
+fake_cc_toolchain_config(
+ name = "windows_toolchain_config",
+ target_cpu = "windows_x86_64",
+ toolchain_identifier = "windows-toolchain",
+)
diff --git a/tests/cc/fake_cc_toolchain_config.bzl b/tests/support/cc_toolchains/fake_cc_toolchain_config.bzl
similarity index 100%
rename from tests/cc/fake_cc_toolchain_config.bzl
rename to tests/support/cc_toolchains/fake_cc_toolchain_config.bzl
diff --git a/tests/py_cc_toolchain_info_subject.bzl b/tests/support/py_cc_toolchain_info_subject.bzl
similarity index 100%
rename from tests/py_cc_toolchain_info_subject.bzl
rename to tests/support/py_cc_toolchain_info_subject.bzl
diff --git a/tests/base_rules/py_info_subject.bzl b/tests/support/py_info_subject.bzl
similarity index 100%
rename from tests/base_rules/py_info_subject.bzl
rename to tests/support/py_info_subject.bzl
diff --git a/tests/py_runtime_info_subject.bzl b/tests/support/py_runtime_info_subject.bzl
similarity index 100%
rename from tests/py_runtime_info_subject.bzl
rename to tests/support/py_runtime_info_subject.bzl
diff --git a/tests/support/sh_py_run_test.bzl b/tests/support/sh_py_run_test.bzl
index 455f64e..32df5b8 100644
--- a/tests/support/sh_py_run_test.bzl
+++ b/tests/support/sh_py_run_test.bzl
@@ -99,7 +99,7 @@
doc = """
Value for the --extra_toolchains flag.
-NOTE: You'll likely have to also specify //tests/cc:all (or some CC toolchain)
+NOTE: You'll likely have to also specify //tests/support/cc_toolchains:all (or some CC toolchain)
to make the RBE presubmits happy, which disable auto-detection of a CC
toolchain.
""",
diff --git a/tests/support/support.bzl b/tests/support/support.bzl
index a74346d..b7d8fa9 100644
--- a/tests/support/support.bzl
+++ b/tests/support/support.bzl
@@ -27,7 +27,8 @@
WINDOWS_X86_64 = Label("//tests/support:windows_x86_64")
PLATFORM_TOOLCHAIN = str(Label("//tests/support:platform_toolchain"))
-CC_TOOLCHAIN = str(Label("//tests/cc:all"))
+CC_TOOLCHAIN = str(Label("//tests/support/cc_toolchains:all"))
+CROSSTOOL_TOP = Label("//tests/support/cc_toolchains:cc_toolchain_suite")
# str() around Label() is necessary because rules_testing's config_settings
# doesn't accept yet Label objects.