# Copyright 2022 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.

test_suite(
    name = "tests",
    tags = ["all"],
    tests = [
        ":archivist_tests",
        ":assembly_tests",
        ":cpp_variants_tests",
        ":licenses_tests",
        "//fuchsia/api_levels:tests",
        "//fuchsia/drivers:tests",
        "//fuchsia/packaging:tests",
    ],
)

test_suite(
    name = "archivist_tests",
    tests = [
        "//fuchsia/archivist:archivist_pipeline_test_test",
    ],
)

test_suite(
    name = "assembly_tests",
    tests = [
        "//fuchsia/assembly:board_configuration_golden_test",
        "//fuchsia/assembly:board_input_bundle_golden_test",
        "//fuchsia/assembly:partitions_config_golden_test",
        "//fuchsia/assembly:prebuilt_inputs_board_configuration_golden_test",
        "//fuchsia/assembly:prebuilt_product_config_golden_test",
        "//fuchsia/assembly:product_config_golden_test",
        "//fuchsia/assembly:product_config_with_labels_golden_test",
        "//fuchsia/assembly:product_ota_config_golden_test",
        "//fuchsia/assembly:product_ota_config_golden_test_channel_config",
        "//fuchsia/assembly:product_ota_config_golden_test_realm_a_tuf_repo",
        "//fuchsia/assembly:product_ota_config_golden_test_realm_b_tuf_repo",
        "//fuchsia/assembly:virtual_device_golden_test",
    ],
)

test_suite(
    name = "licenses_tests",
    tests = [
        "//fuchsia/licenses/classification:classification_test",
        "//fuchsia/licenses/notice:notice_test",
        "//fuchsia/licenses/review:review_test",
        "//fuchsia/licenses/spdx:deprecated_golden_test",
        "//fuchsia/licenses/spdx:golden_test",
        "//fuchsia/licenses/spdx_dedup:golden_test",
        "//tools/licenses:classification_types_test",
        "//tools/licenses:spdx_types_test",
    ],
)

test_suite(
    name = "cpp_variants_tests",
    tests = [
        "//fuchsia/cpp_variants:cc_17_all",
        "//fuchsia/cpp_variants:cc_17_shadow",
        "//fuchsia/cpp_variants:cc_20_all",
    ],
)

filegroup(
    name = "build_only_tests",
    testonly = True,
    srcs = [
        "//examples/hello_world_cpp:pkg",
        "//examples/hello_world_cpp:test_pkg",
    ],
)
