| """Fake test toolchain for testing arbitrary --platforms""" |
| |
| load("@bazel_features//:features.bzl", "bazel_features") |
| load("@rules_testing//lib:util.bzl", "util") |
| load("//java/common:java_semantics.bzl", "semantics") |
| |
| def mock_test_toolchains(name, cpu, os): |
| """Creates and returns a list of mock test toolchains for the given cpu and os if they're required. |
| |
| Args: |
| name: The name of the toolchain. |
| cpu: The cpu for toolchain should be compatible with. |
| os: The os the toolchain should be compatible with. |
| Returns: |
| A list of toolchain targets. |
| """ |
| if not bazel_features.toolchains.has_default_test_toolchain_type: |
| return [] |
| util.helper_target( |
| rule = native.toolchain, |
| name = name, |
| toolchain_type = Label(semantics.TOOLS_TEST_DEFAULT_TEST_TOOLCHAIN_TYPE), |
| toolchain = Label(semantics.TOOLS_TEST_EMPTY_TOOLCHAIN), |
| target_compatible_with = [ |
| "@platforms//os:" + os, |
| "@platforms//cpu:" + cpu, |
| ], |
| ) |
| return [native.package_relative_label(name)] |