Skip to content

Commit

Permalink
Simplify cc_test rules by leveraging optional toolchains.
Browse files Browse the repository at this point in the history
RELNOTES: cc_test can now be configured by using a native.toolchain().
PiperOrigin-RevId: 520703682
Change-Id: I908e526f902a8a0f325aa0394d4c0966d72fc06a
  • Loading branch information
trybka authored and copybara-github committed Mar 30, 2023
1 parent e54564f commit 99b672b
Show file tree
Hide file tree
Showing 22 changed files with 122 additions and 124 deletions.
6 changes: 3 additions & 3 deletions scripts/packages/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ filegroup(
name = "srcs",
srcs = glob(["**"]) + [
"//scripts/packages/debian:srcs",
"//scripts/packages/fedora:srcs",
"//scripts/packages/dmg:srcs",
"//scripts/packages/fedora:srcs",
],
visibility = [
"//scripts:__pkg__",
Expand All @@ -25,14 +25,14 @@ filegroup(
"//src/conditions:freebsd": [],
"//src/conditions:openbsd": [],
"//src/conditions:darwin": [
":generate-package-info",
":with-jdk/install.sh",
":without-jdk/install.sh",
":generate-package-info",
],
"//conditions:default": [
":generate-package-info",
":with-jdk/install.sh",
":without-jdk/install.sh",
":generate-package-info",
"//:bazel-distfile",
"//scripts/packages/debian:bazel-debian",
"//scripts/packages/debian:bazel-debian-src",
Expand Down
38 changes: 19 additions & 19 deletions src/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -90,33 +90,33 @@ JAVA_TOOLS = [
srcs = JAVA_TOOLS + [
"BUILD.tools",
"MODULE.tools",
"//tools:embedded_tools_srcs",
"//src/conditions:embedded_tools",
"//src/main/cpp/util:embedded_tools",
"//src/main/native:embedded_tools",
"//src/main/protobuf:srcs",
"//src/tools/android/java/com/google/devtools/build/android:embedded_tools",
"//src/tools/launcher:srcs",
"//third_party:gpl-srcs",
"//third_party/def_parser:srcs",
"//third_party/grpc:embedded_tools_srcs",
"//third_party/grpc/bazel:embedded_tools_srcs",
"//third_party/ijar:embedded_zipper_sources",
"//third_party/ijar:zipper",
"//third_party/java/j2objc:embedded_tools_srcs",
"//third_party/py/abseil:srcs",
"//third_party/py/six:srcs",
"//src/conditions:embedded_tools",
"//src/tools/android/java/com/google/devtools/build/android:embedded_tools",
"//src/tools/launcher:srcs",
"//src/main/cpp/util:embedded_tools",
"//src/main/native:embedded_tools",
"//src/main/protobuf:srcs",
"//third_party/def_parser:srcs",
"//third_party/zlib:embedded_tools",
"//tools:embedded_tools_srcs",
] + select({
"//src/conditions:darwin": [
"//tools/osx:xcode_locator.m",
],
"//conditions:default": [],
}) + select({
"//src/conditions:windows": [
"//src/tools/launcher:launcher",
"//src/tools/launcher",
"//src/tools/launcher:launcher_maker",
"//third_party/def_parser:def_parser",
"//third_party/def_parser",
],
"//conditions:default": [],
}) +
Expand Down Expand Up @@ -339,7 +339,6 @@ filegroup(
"//src/java_tools/junitrunner/javatests/com/google/testing/coverage:srcs",
"//src/java_tools/singlejar:srcs",
"//src/main/cpp:srcs",
"//src/main/res:srcs",
"//src/main/java/com/google/devtools/build/docgen:srcs",
"//src/main/java/com/google/devtools/build/lib:srcs",
"//src/main/java/com/google/devtools/build/lib/includescanning:srcs",
Expand All @@ -349,16 +348,15 @@ filegroup(
"//src/main/java/com/google/devtools/build/skyframe:srcs",
"//src/main/java/com/google/devtools/common/options:srcs",
"//src/main/java/net/starlark/java/cmd:srcs",
"//src/main/java/net/starlark/java/spelling:srcs",
"//src/main/java/net/starlark/java/lib/json:srcs",
"//src/main/java/net/starlark/java/spelling:srcs",
"//src/main/native:srcs",
"//src/main/protobuf:srcs",
"//src/main/res:srcs",
"//src/main/starlark/builtins_bzl:srcs",
"//src/main/tools:srcs",
"//src/test/cpp:srcs",
"//src/test/gen:srcs",
"//src/test/res:srcs",
"//src/test/native/windows:srcs",
"//src/test/java/com/google/devtools/build/android:srcs",
"//src/test/java/com/google/devtools/build/docgen:srcs",
"//src/test/java/com/google/devtools/build/lib:srcs",
Expand All @@ -368,18 +366,20 @@ filegroup(
"//src/test/java/com/google/devtools/common/options:srcs",
"//src/test/java/net/starlark/java/eval:srcs",
"//src/test/java/net/starlark/java/spelling:srcs",
"//src/test/native/windows:srcs",
"//src/test/py/bazel:srcs",
"//src/test/res:srcs",
"//src/test/shell:srcs",
"//src/test/testdata/test_tls_certificate",
"//src/test/tools:srcs",
"//src/tools/android:srcs",
"//src/tools/android/java/com/google/devtools/build/android:srcs",
"//src/tools/execlog:srcs",
"//src/tools/workspacelog:srcs",
"//src/tools/launcher:srcs",
"//src/tools/starlark/java/com/google/devtools/starlark/common:srcs",
"//src/tools/singlejar:srcs",
"//src/tools/remote:srcs",
"//src/tools/singlejar:srcs",
"//src/tools/starlark/java/com/google/devtools/starlark/common:srcs",
"//src/tools/workspacelog:srcs",
"//tools/osx:srcs",
],
visibility = ["//:__pkg__"],
Expand Down Expand Up @@ -564,13 +564,13 @@ filegroup(
"@bazel_skylib//:WORKSPACE",
"@com_google_protobuf//:WORKSPACE",
"@remote_coverage_tools//:WORKSPACE",
"@remote_java_tools_darwin_x86_64_for_testing//:WORKSPACE",
"@remote_java_tools_darwin_arm64_for_testing//:WORKSPACE",
"@remote_java_tools_darwin_x86_64_for_testing//:WORKSPACE",
"@remote_java_tools_for_testing//:WORKSPACE",
"@remote_java_tools_linux_for_testing//:WORKSPACE",
"@remote_java_tools_test//:WORKSPACE",
"@remote_java_tools_test_darwin_x86_64//:WORKSPACE",
"@remote_java_tools_test_darwin_arm64//:WORKSPACE",
"@remote_java_tools_test_darwin_x86_64//:WORKSPACE",
"@remote_java_tools_test_linux//:WORKSPACE",
"@remote_java_tools_test_windows//:WORKSPACE",
"@remote_java_tools_windows_for_testing//:WORKSPACE",
Expand Down
2 changes: 1 addition & 1 deletion src/main/cpp/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,9 @@ cc_binary(
srcs = [
"blaze.cc",
"blaze.h",
"main.cc",
"server_process_info.cc",
"server_process_info.h",
"main.cc",
] + select({
"//src/conditions:windows": ["resources.o"],
"//conditions:default": [],
Expand Down
28 changes: 14 additions & 14 deletions src/main/java/com/google/devtools/build/lib/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -38,24 +38,24 @@ filegroup(
"//src/main/java/com/google/devtools/build/lib/authandtls:srcs",
"//src/main/java/com/google/devtools/build/lib/bazel:srcs",
"//src/main/java/com/google/devtools/build/lib/bugreport:srcs",
"//src/main/java/com/google/devtools/build/lib/buildeventservice/client:srcs",
"//src/main/java/com/google/devtools/build/lib/buildeventservice:srcs",
"//src/main/java/com/google/devtools/build/lib/buildeventservice/client:srcs",
"//src/main/java/com/google/devtools/build/lib/buildeventstream:srcs",
"//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:srcs",
"//src/main/java/com/google/devtools/build/lib/buildeventstream/transports:srcs",
"//src/main/java/com/google/devtools/build/lib/buildeventstream:srcs",
"//src/main/java/com/google/devtools/build/lib/causes:srcs",
"//src/main/java/com/google/devtools/build/lib/clock:srcs",
"//src/main/java/com/google/devtools/build/lib/cmdline:srcs",
"//src/main/java/com/google/devtools/build/lib/collect:srcs",
"//src/main/java/com/google/devtools/build/lib/collect/compacthashmap:srcs",
"//src/main/java/com/google/devtools/build/lib/collect/compacthashset:srcs",
"//src/main/java/com/google/devtools/build/lib/collect/nestedset:srcs",
"//src/main/java/com/google/devtools/build/lib/collect:srcs",
"//src/main/java/com/google/devtools/build/lib/concurrent:srcs",
"//src/main/java/com/google/devtools/build/lib/dynamic:srcs",
"//src/main/java/com/google/devtools/build/lib/events:srcs",
"//src/main/java/com/google/devtools/build/lib/exec:srcs",
"//src/main/java/com/google/devtools/build/lib/io:srcs",
"//src/main/java/com/google/devtools/build/lib/graph:srcs",
"//src/main/java/com/google/devtools/build/lib/io:srcs",
"//src/main/java/com/google/devtools/build/lib/jni:srcs",
"//src/main/java/com/google/devtools/build/lib/metrics:srcs",
"//src/main/java/com/google/devtools/build/lib/network:srcs",
Expand All @@ -64,15 +64,15 @@ filegroup(
"//src/main/java/com/google/devtools/build/lib/packages/semantics:srcs",
"//src/main/java/com/google/devtools/build/lib/pkgcache:srcs",
"//src/main/java/com/google/devtools/build/lib/platform:srcs",
"//src/main/java/com/google/devtools/build/lib/profiler:srcs",
"//src/main/java/com/google/devtools/build/lib/profiler/callcounts:srcs",
"//src/main/java/com/google/devtools/build/lib/profiler/memory:srcs",
"//src/main/java/com/google/devtools/build/lib/profiler:srcs",
"//src/main/java/com/google/devtools/build/lib/query2:srcs",
"//src/main/java/com/google/devtools/build/lib/query2/common:srcs",
"//src/main/java/com/google/devtools/build/lib/query2/compat:srcs",
"//src/main/java/com/google/devtools/build/lib/query2/engine:srcs",
"//src/main/java/com/google/devtools/build/lib/query2/query/aspectresolvers:srcs",
"//src/main/java/com/google/devtools/build/lib/query2/query/output:srcs",
"//src/main/java/com/google/devtools/build/lib/query2:srcs",
"//src/main/java/com/google/devtools/build/lib/remote:srcs",
"//src/main/java/com/google/devtools/build/lib/repository:srcs",
"//src/main/java/com/google/devtools/build/lib/rules:srcs",
Expand All @@ -83,29 +83,29 @@ filegroup(
"//src/main/java/com/google/devtools/build/lib/server:srcs",
"//src/main/java/com/google/devtools/build/lib/shell:srcs",
"//src/main/java/com/google/devtools/build/lib/skyframe:srcs",
"//src/main/java/com/google/devtools/build/lib/standalone:srcs",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi:srcs",
"//src/main/java/com/google/devtools/build/lib/starlarkdebug/module:srcs",
"//src/main/java/com/google/devtools/build/lib/starlarkdebug/proto:srcs",
"//src/main/java/com/google/devtools/build/lib/starlarkdebug/server:srcs",
"//src/main/java/net/starlark/java/annot/processor:srcs",
"//src/main/java/net/starlark/java/annot:srcs",
"//src/main/java/net/starlark/java/eval:srcs",
"//src/main/java/net/starlark/java/syntax:srcs",
"//src/main/java/net/starlark/java:srcs",
"//src/main/java/com/google/devtools/build/lib/standalone:srcs",
"//src/main/java/com/google/devtools/build/lib/supplier:srcs",
"//src/main/java/com/google/devtools/build/lib/testing/common:srcs",
"//src/main/java/com/google/devtools/build/lib/testing/vfs:srcs",
"//src/main/java/com/google/devtools/build/lib/unix:srcs",
"//src/main/java/com/google/devtools/build/lib/unsafe:srcs",
"//src/main/java/com/google/devtools/build/lib/util:srcs",
"//src/main/java/com/google/devtools/build/lib/versioning:srcs",
"//src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs:srcs",
"//src/main/java/com/google/devtools/build/lib/vfs:srcs",
"//src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs:srcs",
"//src/main/java/com/google/devtools/build/lib/windows:srcs",
"//src/main/java/com/google/devtools/build/lib/worker:srcs",
"//src/main/java/com/google/devtools/build/skyframe:srcs",
"//src/main/java/com/google/devtools/common/options:srcs",
"//src/main/java/net/starlark/java:srcs",
"//src/main/java/net/starlark/java/annot:srcs",
"//src/main/java/net/starlark/java/annot/processor:srcs",
"//src/main/java/net/starlark/java/eval:srcs",
"//src/main/java/net/starlark/java/syntax:srcs",
],
visibility = [
"//src:__pkg__",
Expand Down Expand Up @@ -479,10 +479,10 @@ filegroup(
name = "docs_embedded_in_sources",
srcs = glob(["**/*.java"]) + [
"//src/main/java/com/google/devtools/build/lib/analysis:srcs",
"//src/main/java/com/google/devtools/build/lib/bazel/rules:srcs",
"//src/main/java/com/google/devtools/build/lib/exec:srcs",
"//src/main/java/com/google/devtools/build/lib/repository:srcs",
"//src/main/java/com/google/devtools/build/lib/rules:srcs",
"//src/main/java/com/google/devtools/build/lib/bazel/rules:srcs",
],
)

Expand Down
2 changes: 1 addition & 1 deletion src/main/native/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ filegroup(
name = "jni_os",
srcs = select({
"//src/conditions:darwin": [
"darwin/fsevents.cc",
"darwin/file_jni.cc",
"darwin/fsevents.cc",
"darwin/sleep_prevention_jni.cc",
"darwin/system_cpu_speed_monitor_jni.cc",
"darwin/system_disk_space_monitor_jni.cc",
Expand Down
16 changes: 11 additions & 5 deletions src/main/starlark/builtins_bzl/common/cc/cc_test.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,12 @@ load(":common/cc/cc_helper.bzl", "cc_helper")
load(":common/cc/semantics.bzl", "semantics")

cc_internal = _builtins.internal.cc_internal
config_common = _builtins.toplevel.config_common
platform_common = _builtins.toplevel.platform_common
testing = _builtins.toplevel.testing

_CC_TEST_TOOLCHAIN_TYPE = "@" + semantics.get_repo() + "//tools/cpp:test_runner_toolchain_type"

def _cc_test_impl(ctx):
binary_info, providers = cc_binary_impl(ctx, [])
test_env = {}
Expand Down Expand Up @@ -55,12 +58,13 @@ def _cc_test_impl(ctx):
return providers

def _impl(ctx):
if semantics.should_use_legacy_cc_test(ctx):
cc_test_toolchain = ctx.exec_groups["test"].toolchains[_CC_TEST_TOOLCHAIN_TYPE]
if cc_test_toolchain:
cc_test_info = cc_test_toolchain.cc_test_info
else:
# This is the "legacy" cc_test flow
return _cc_test_impl(ctx)

cc_test_info = ctx.attr._test_toolchain[cc_internal.CcTestRunnerInfo]

binary_info, providers = cc_binary_impl(ctx, cc_test_info.linkopts)
processed_environment = cc_helper.get_expanded_env(ctx, {})

Expand Down Expand Up @@ -113,7 +117,6 @@ def make_cc_test(with_linkstatic = False, with_aspects = False):
linkstatic = attr.bool(default = False),
)
_cc_test_attrs.update(semantics.get_test_malloc_attr())
_cc_test_attrs.update(semantics.get_test_toolchain_attr())
_cc_test_attrs.update(semantics.get_coverage_attrs())

_cc_test_attrs.update(
Expand All @@ -130,8 +133,11 @@ def make_cc_test(with_linkstatic = False, with_aspects = False):
fragments = ["google_cpp", "cpp", "coverage"],
exec_groups = {
"cpp_link": exec_group(toolchains = cc_helper.use_cpp_toolchain()),
# testing.ExecutionInfo defaults to an exec_group of "test".
"test": exec_group(toolchains = [config_common.toolchain_type(_CC_TEST_TOOLCHAIN_TYPE, mandatory = False)]),
},
toolchains = cc_helper.use_cpp_toolchain() +
toolchains = [] +
cc_helper.use_cpp_toolchain() +
semantics.get_runtimes_toolchain(),
incompatible_use_toolchain_transition = True,
test = True,
Expand Down
8 changes: 0 additions & 8 deletions src/main/starlark/builtins_bzl/common/cc/semantics.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,6 @@ def _get_grep_includes():
def _get_runtimes_toolchain():
return []

def _get_test_toolchain_attr():
return {}

def _get_test_malloc_attr():
return {}

Expand Down Expand Up @@ -140,9 +137,6 @@ def _get_cc_runtimes(ctx, is_library):

return runtimes

def _should_use_legacy_cc_test(_):
return True

def _get_implementation_deps_allowed_attr():
return {}

Expand Down Expand Up @@ -203,9 +197,7 @@ semantics = struct(
get_linkstatic_default = _get_linkstatic_default,
get_runtimes_toolchain = _get_runtimes_toolchain,
get_test_malloc_attr = _get_test_malloc_attr,
get_test_toolchain_attr = _get_test_toolchain_attr,
get_cc_runtimes = _get_cc_runtimes,
should_use_legacy_cc_test = _should_use_legacy_cc_test,
get_coverage_attrs = _get_coverage_attrs,
get_coverage_env = _get_coverage_env,
get_proto_aspects = _get_proto_aspects,
Expand Down
2 changes: 1 addition & 1 deletion src/main/tools/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ cc_binary(
deps = select({
"//src/conditions:windows": [],
"//conditions:default": [
":process-tools",
":logging",
":process-tools",
],
}),
)
Expand Down
2 changes: 1 addition & 1 deletion src/test/cpp/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ cc_test(
"blaze_util_windows_test.cc",
],
"//conditions:default": [
"blaze_util_test.cc",
"blaze_util_posix_test.cc",
"blaze_util_test.cc",
],
}),
deps = [
Expand Down
2 changes: 1 addition & 1 deletion src/test/java/com/google/devtools/build/android/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ load("@rules_java//java:defs.bzl", "java_library", "java_test")
filegroup(
name = "srcs",
srcs = glob(["**"]) + [
"//src/test/java/com/google/devtools/build/android/idlclass:srcs",
"//src/test/java/com/google/devtools/build/android/desugar:srcs",
"//src/test/java/com/google/devtools/build/android/dexer:srcs",
"//src/test/java/com/google/devtools/build/android/idlclass:srcs",
"//src/test/java/com/google/devtools/build/android/junctions:srcs",
"//src/test/java/com/google/devtools/build/android/r8:srcs",
"//src/test/java/com/google/devtools/build/android/resources:srcs",
Expand Down
2 changes: 1 addition & 1 deletion src/test/java/com/google/devtools/build/android/r8/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ java_library(
"//conditions:default": ["NoAndroidSdkStubTest.java"],
}),
deps = [
"//src/test/java/com/google/devtools/build/lib/testutil:TestSuite",
"//src/main/java/com/google/devtools/common/options:options_internal",
"//src/test/java/com/google/devtools/build/lib/testutil:TestSuite",
"//src/tools/android/java/com/google/devtools/build/android/r8",
"//third_party:guava",
"//third_party:junit4",
Expand Down
Loading

0 comments on commit 99b672b

Please sign in to comment.