| # Copyright 2019 The Fuchsia Authors. All rights reserved. | 
 | # Use of this source code is governed by a BSD-style license that can be | 
 | # found in the LICENSE file. | 
 |  | 
 | group("tools") { | 
 |   testonly = true | 
 |  | 
 |   public_deps = [ | 
 |     ":build_infra", | 
 |     ":test_infra", | 
 |     "//tools/auto_owners($host_toolchain)", | 
 |     "//tools/bindc:host($host_toolchain)", | 
 |     "//tools/blackout:all", | 
 |     "//tools/bootserver_old:host($host_toolchain)", | 
 |     "//tools/build", | 
 |     "//tools/clidoc:clidoc", | 
 |     "//tools/cmc:install($host_toolchain)", | 
 |     "//tools/component_id_index($host_toolchain)", | 
 |     "//tools/component_manager_config($host_toolchain)", | 
 |     "//tools/create:install($host_toolchain)", | 
 |     "//tools/dart-strict-deps:strict_deps($host_toolchain)", | 
 |     "//tools/debroot($host_toolchain)", | 
 |     "//tools/doc_checker($host_toolchain)", | 
 |     "//tools/fidl", | 
 |     "//tools/fidlcat:fidlcat_host", | 
 |     "//tools/fvdl:host($host_toolchain)", | 
 |     "//tools/integration/fint($host_toolchain)", | 
 |     "//tools/jq5:install($host_toolchain)", | 
 |     "//tools/loglistener:host($host_toolchain)", | 
 |     "//tools/make-efi:host", | 
 |     "//tools/make-fuchsia-vol:host", | 
 |     "//tools/mdlint:host", | 
 |     "//tools/net/device-finder:host", | 
 |     "//tools/netprotocol($host_toolchain)", | 
 |     "//tools/sdk-tools:tools($host_toolchain)", | 
 |     "//tools/symbol-index($host_toolchain)", | 
 |     "//tools/symbolizer($host_toolchain)", | 
 |     "//tools/virtual_device:fvd($host_toolchain)", | 
 |     "//tools/zedmon/client:zedmon_client", | 
 |   ] | 
 | } | 
 |  | 
 | # Tools that are used by the infrastructure for building. | 
 | group("build_infra") { | 
 |   public_deps = [ | 
 |     "//tools/artifactory($host_toolchain)", | 
 |     "//tools/blobstats($host_toolchain)", | 
 |     "//tools/build/ninjago/buildstats($host_toolchain)", | 
 |     "//tools/build/ninjago/ninjatrace($host_toolchain)", | 
 |     "//tools/size_checker/cmd:host($host_toolchain)", | 
 |   ] | 
 | } | 
 |  | 
 | # Tools that are used by the infrastructure for running tests. | 
 | group("test_infra") { | 
 |   testonly = true | 
 |  | 
 |   # Tools that are only needed on the type of host that does the build. | 
 |   public_deps = [ | 
 |     "//tools/integration/testsharder($host_toolchain)", | 
 |  | 
 |     # The symbolizer should only be needed on Linux x64, but cross-compilation | 
 |     # doesn't work for this tool and the Mac builders don't use it, so just | 
 |     # build it for the host toolchain. | 
 |     "//tools/symbolizer($host_toolchain)", | 
 |   ] | 
 |  | 
 |   # Tools that are only needed on Linux x64, regardless of the current host. | 
 |   linux_x64_only_tools = [ | 
 |     "//src/diagnostics/triage:triage_bin", | 
 |     "//tools/debug/covargs", | 
 |     "//tools/debug/symbolize", | 
 |     "//tools/testing/resultdb", | 
 |     "//tools/testing/tefmocheck", | 
 |   ] | 
 |  | 
 |   # Tools needed on all possible hosts. | 
 |   # Anything that runs on ARM64 hosts during testing should be here, | 
 |   # since in that case the build happens on an X64 host. | 
 |   all_host_tools = [ | 
 |     "//src/storage/bin/fvm", | 
 |     "//tools/bootserver", | 
 |     "//tools/botanist", | 
 |     "//tools/testing:tools", | 
 |   ] | 
 |  | 
 |   foreach(tool, linux_x64_only_tools) { | 
 |     if (host_os == "linux") { | 
 |       public_deps += [ "$tool($host_x64_toolchain)" ] | 
 |     } else { | 
 |       public_deps += [ "$tool($linux_x64_toolchain)" ] | 
 |     } | 
 |   } | 
 |  | 
 |   all_host_toolchains = [] | 
 |   if (host_os == "linux") { | 
 |     all_host_toolchains += [ | 
 |       host_arm64_toolchain, | 
 |       host_x64_toolchain, | 
 |     ] | 
 |   } else if (host_os == "mac") { | 
 |     all_host_toolchains += [ host_toolchain ] | 
 |   } | 
 |  | 
 |   foreach(tool, all_host_tools) { | 
 |     foreach(toolchain, all_host_toolchains) { | 
 |       public_deps += [ "$tool($toolchain)" ] | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | group("e2e_tests") { | 
 |   testonly = true | 
 |  | 
 |   deps = [] | 
 |  | 
 |   # TODO(fxbug.dev/63992): Temporarily disable bootserver_old tests on coverage builders. | 
 |   if (!is_coverage) { | 
 |     deps += [ "//tools/bootserver_old/tests($host_toolchain)" ] | 
 |   } | 
 | } | 
 |  | 
 | group("tests_no_e2e") { | 
 |   testonly = true | 
 |   assert_no_deps = e2e_test_libs | 
 |  | 
 |   deps = [ | 
 |     "//tools/artifactory:tests", | 
 |     "//tools/auto_owners:tests($host_toolchain)", | 
 |     "//tools/bindc:tests", | 
 |     "//tools/blackout:tests", | 
 |     "//tools/blobstats:tests", | 
 |     "//tools/bootserver:tests($host_toolchain)", | 
 |     "//tools/botanist:tests($host_toolchain)", | 
 |     "//tools/build:tests($host_toolchain)", | 
 |     "//tools/cargo-gnaw:tests", | 
 |     "//tools/check-licenses:tests", | 
 |     "//tools/clidoc:tests", | 
 |     "//tools/cmc:tests", | 
 |     "//tools/component_id_index:tests($host_toolchain)", | 
 |     "//tools/component_manager_config:tests($host_toolchain)", | 
 |     "//tools/create:tests", | 
 |     "//tools/dart-strict-deps:tests($host_toolchain)", | 
 |     "//tools/debug:tests($host_toolchain)", | 
 |     "//tools/devshell:tests($host_toolchain)", | 
 |     "//tools/doc_checker:tests", | 
 |     "//tools/femu-control:tests", | 
 |     "//tools/fidl:tests", | 
 |     "//tools/fidlcat:fidlcat_host_tests($host_toolchain)", | 
 |     "//tools/fidlcat/tests", | 
 |     "//tools/fuzz:tests($host_toolchain)", | 
 |     "//tools/fvdl:tests", | 
 |     "//tools/golden-util:tests", | 
 |     "//tools/integration:tests($host_toolchain)", | 
 |     "//tools/jq5:tests($host_toolchain)", | 
 |     "//tools/lib:tests($host_toolchain)", | 
 |     "//tools/make-fuchsia-vol:tests", | 
 |     "//tools/mdlint:tests", | 
 |     "//tools/net:tests($host_toolchain)", | 
 |     "//tools/qemu:tests($host_toolchain)", | 
 |     "//tools/sdk-tools:tests($host_toolchain)", | 
 |     "//tools/serial:tests($host_toolchain)", | 
 |     "//tools/size_checker:tests($host_toolchain)", | 
 |     "//tools/symbol-index:tests", | 
 |     "//tools/symbolizer:tests", | 
 |     "//tools/sys-realm-analyzer:tests($host_toolchain)", | 
 |     "//tools/testing:tests($host_toolchain)", | 
 |     "//tools/virtual_device:tests($host_toolchain)", | 
 |     "//tools/zedmon:tests", | 
 |   ] | 
 | } | 
 |  | 
 | group("tests") { | 
 |   testonly = true | 
 |   deps = [ | 
 |     ":e2e_tests", | 
 |     ":tests_no_e2e", | 
 |  | 
 |     # `emulator:tests` contains unit tests for emulator, which depend on | 
 |     # emulator so we can't put it in `tests_no_e2e`, but it's not an e2e tests | 
 |     # neither. | 
 |     "//tools/emulator:tests", | 
 |   ] | 
 | } |