| # 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. |
| |
| import("gn/build_rules.gni") |
| |
| # Ensure that host tests are always rebuilt with device ones on Linux hosts. |
| _build_host_tests = |
| is_fuchsia && target_cpu == "x64" && host_os == "linux" # b/48603 |
| |
| group("compute") { |
| deps = [ |
| "common", |
| "common/vk", |
| "hotsort", |
| "mold", |
| "spinel", |
| "spinel-rs", |
| "spinel-rs-sys", |
| "spinel/platforms/vk", |
| "surpass", |
| "svg", |
| ] |
| } |
| |
| # IMPORTANT: Most graphics compute tests cannot run on the CQ for now due to |
| # a missing appropriate bot configuration (see fxbug.dev/25516 for details). Thus tests |
| # are spread over two targets. |
| # |
| # tests: A group that lists all the tests to build by default, and which |
| # will be run during continuous integration, since this is reachable |
| # from //bundles/tests. |
| # |
| # all_tests: A group that depends on 'tests', but adds other programs |
| # and test packages that should not or cannot run during |
| # continuous integration. |
| # |
| # 'fx run-test <name>' or 'fx run-host-tests <name>' can be used to manually |
| # launch a test that was defined with graphics_compute_test_package() or |
| # graphics_compute_unittests_package(). |
| # |
| # Other programs (e.g. graphics_compute_executable() targets) can be run with |
| # "fx shell run <name>" or "out/default/host_x64/<name>" instead. |
| # |
| |
| group("tests") { |
| testonly = true |
| public_deps = [ |
| ":graphics-compute-unittests", |
| "mold:mold-tests", |
| "spinel-rs:spinel-rs-tests", |
| "spinel-rs-sys:tests", |
| "surpass:surpass-tests", |
| ] |
| |
| # NOTE: All dependencies here are run in continuous integration, but our |
| # host bots currently lack a proper Vulkan loader + ICD. Thus only add |
| # the device-specific Vulkan-based unit-tests for now. |
| if (is_fuchsia) { |
| public_deps += [ ":graphics-compute-vk-unittests" ] |
| } |
| |
| if (_build_host_tests) { |
| data_deps = [ |
| ":tests($host_toolchain)", |
| "tests/common/svg:spn_svg_dump($host_toolchain)", |
| ] |
| } |
| } |
| |
| group("all_tests") { |
| testonly = true |
| public_deps = [ |
| ":graphics-compute-vk-unittests", |
| ":tests", |
| "examples", |
| "hotsort:tests", |
| "tests:tests", |
| ] |
| if (_build_host_tests) { |
| data_deps = [ ":all_tests($host_toolchain)" ] |
| } |
| } |
| |
| # A target used to group all simple graphics compute unit-tests |
| # (i.e. those that do not depend on Vulkan for now). Unlike Vulkan-based |
| # tests, these can run anywhere on the CQ. |
| graphics_compute_unittests_package("graphics-compute-unittests") { |
| deps = [ |
| "common:common_unittests", |
| "spinel:spinel_ext_unittests", |
| "svg:svg_unittests", |
| "tests:common_unittests", |
| "tests/common/spinel:unittests", |
| "tests/common/svg:unittests", |
| "tests/mock_spinel:mock_spinel_unittests", |
| ] |
| } |
| |
| # A target used to group all graphics compute unit-tests that depend |
| # on a working Vulkan environment and that link against the Spinel library. |
| graphics_compute_unittests_package("graphics-compute-vk-unittests") { |
| deps = [ |
| "spinel:vk_unittests", |
| "tests:common_vk_unittests", |
| "tests/common/spinel_vk:unittests", |
| ] |
| needs_vulkan = true |
| |
| # TODO(fxbug.dev/58615): Fix the leaks and remove this. |
| deps += [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ] |
| } |