# Copyright 2017 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("topaz") {
  testonly = true
  public_deps = [
    # TODO: This target should just aggregate the top-level directories and
    # most of these dependencies should be in those subdirectories.
    "//garnet/packages/benchmarks:buildbot",
    "//garnet/packages/prod:drivers",
    "//garnet/packages/prod:scenic",
    "//src/fonts",
    "//third_party/dart-pkg/git/flutter/examples/flutter_gallery",
    "//topaz:tests",
    "//topaz/app/latin-ime",
    "//topaz/app/spinning_cube",
    "//topaz/bin/fidlgen_dart:install(//build/toolchain:host_x64)",
    "//topaz/bin/system_dashboard",
    "//topaz/examples/fidl/compiler",
    "//topaz/examples/fidl/echo_client_async_dart",
    "//topaz/examples/fidl/echo_server_async_dart",
    "//topaz/examples/ledger/todo_list",
    "//topaz/examples/ledger/todo_list_sledge",
    "//topaz/examples/mediaplayer/mediaplayer_flutter",
    "//topaz/examples/mine_digger",
    "//topaz/examples/ui/button_flutter",
    "//topaz/lib/story_shell/examples/example_manual_relationships",
    "//topaz/public/dart/fuchsia_inspect/examples/inspect_mod",
    "//topaz/public/dart/fuchsia_modular/examples/fibonacci_agent",
    "//topaz/public/dart/fuchsia_modular/examples/multilevel_mod",
    "//topaz/public/dart/fuchsia_modular/examples/shapes_mod",
    "//topaz/public/dart/fuchsia_modular/examples/slider_mod",
    "//topaz/public/dart/fuchsia_services/examples/mind_reader/bin:mind_reader_dart",
    "//topaz/public/dart/fuchsia_webview_flutter/examples/webview_mod",
    "//topaz/public/sdk",
    "//topaz/runtime/cast_runner",
    "//topaz/runtime/chromium",
    "//topaz/runtime/chromium:web_runner",
    "//topaz/runtime/dart",
    "//topaz/runtime/dart_runner:dart_aot_product_runner",
    "//topaz/runtime/dart_runner:dart_aot_runner",
    "//topaz/runtime/dart_runner:dart_jit_product_runner",
    "//topaz/runtime/dart_runner:dart_jit_runner",
    "//topaz/runtime/dart_runner/examples/goodbye_dart:goodbye_dart_aot",
    "//topaz/runtime/dart_runner/examples/goodbye_dart:goodbye_dart_jit",
    "//topaz/runtime/dart_runner/examples/hello_app_dart:hello_app_dart_aot",
    "//topaz/runtime/dart_runner/examples/hello_app_dart:hello_app_dart_jit",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_aot",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_aot_product",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_debug",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_jit",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_jit_product",
    "//topaz/shell/story_shell_labs",
    "//topaz/tests/benchmarks:all",
    "//topaz/tools/doc_checker:tests(//build/toolchain:host_x64)",
    "//topaz/tools/doc_checker(//build/toolchain:host_x64)",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    # TODO: This target should just aggregate the top-level directories and
    # most of these dependencies should be in those subdirectories.
    "//garnet/examples/ui:tile_view",
    "//garnet/packages/tests:fidl_compatibility_test_server_cpp",
    "//garnet/packages/tests:fidl_compatibility_test_server_go",
    "//garnet/packages/tests:fidl_compatibility_test_server_llcpp",
    "//garnet/packages/tests:fidl_compatibility_test_server_rust",
    "//garnet/packages/tests:run_test_component",
    "//garnet/packages/tests:scenic",
    "//garnet/packages/tools:scenic",
    "//peridot/packages:peridot",
    "//peridot/packages/tests:ledger",
    "//peridot/packages/tests:modular_test_harness",
    "//src/fonts",
    "//src/modular/bundles:integration_testing",
    "//topaz/bin/crasher_dart",
    "//topaz/bin/crasher_flutter",
    "//topaz/bin/dart_fidl_json/test:dart_fidl_json_test($host_toolchain)",
    "//topaz/bin/fidl_bindings_test/server:fidl_bindings_test_server",
    "//topaz/bin/fidl_bindings_test/test:fidl_bindings_test",
    "//topaz/bin/fidl_compatibility_test:fidl_compatibility_test_topaz",
    "//topaz/bin/fidl_compatibility_test/dart:fidl_compatibility_test_server_dart",
    "//topaz/bin/fidlgen_dart:fidlgen_dart_backend_ir_test($host_toolchain)",
    "//topaz/bin/fidlgen_dart:fidlgen_dart_backend_test($host_toolchain)",
    "//topaz/bin/flutter_screencap_test",
    "//topaz/bin/flutter_screencap_test:flutter_screencap_test_app",
    "//topaz/bin/ui/benchmarks/image_grid_flutter",
    "//topaz/examples/fidl/compiler",
    "//topaz/examples/fidl/echo_client_async_dart",
    "//topaz/examples/fidl/echo_server_async_dart",
    "//topaz/examples/ledger/todo_list:todo_list_test($host_toolchain)",
    "//topaz/examples/test/driver_example_mod",
    "//topaz/examples/test/driver_example_mod:driver_example_mod_tests",
    "//topaz/examples/test/flutter_widget_test($host_toolchain)",
    "//topaz/lib/keyboard/flutter:keyboard_test($host_toolchain)",
    "//topaz/lib/setui/common:lib_setui_common_test($host_toolchain)",
    "//topaz/lib/setui/flutter:lib_setui_flutter_test($host_toolchain)",
    "//topaz/lib/story_shell/examples/story_shell_test:key_listener_device_tests",
    "//topaz/lib/tiler:tiler_unittests($host_toolchain)",
    "//topaz/public/dart-pkg/zircon:dart_zircon_test",
    "//topaz/public/dart/composition_delegate:composition_delegate_tests($host_toolchain)",
    "//topaz/public/dart/fuchsia_inspect:fuchsia_inspect_package_unittests($host_toolchain)",
    "//topaz/public/dart/fuchsia_inspect/examples/inspect_mod",

    # TODO(fxb/38305): Re-enable test when unblocked and inspect paths are corrected
    # "//topaz/public/dart/fuchsia_inspect/examples/inspect_mod:inspect_mod_test",
    "//topaz/public/dart/fuchsia_inspect/test/inspect_flutter_integration_tester",

    # TODO(fxb/38305): Re-enable test when unblocked and inspect paths are corrected
    # "//topaz/public/dart/fuchsia_inspect/test/inspect_flutter_integration_tester:inspect_dart_integration_test_driver",
    "//topaz/public/dart/fuchsia_inspect/test/integration:dart_inspect_vmo_test",
    "//topaz/public/dart/fuchsia_inspect/test/integration:dart_inspect_vmo_test_writer",
    "//topaz/public/dart/fuchsia_inspect_flutter:inspect_flutter_test($host_toolchain)",
    "//topaz/public/dart/fuchsia_inspect_flutter/examples/torus15",
    "//topaz/public/dart/fuchsia_inspect_flutter/examples/torus15:torus15_dart_test",
    "//topaz/public/dart/fuchsia_inspect_flutter/examples/torus15:torus15_flutter_test($host_toolchain)",
    "//topaz/public/dart/fuchsia_logger:fuchsia_logger_package_unittests($host_toolchain)",
    "//topaz/public/dart/fuchsia_modular:fuchsia_modular_package_integration_tests",
    "//topaz/public/dart/fuchsia_modular:fuchsia_modular_package_unittests($host_toolchain)",
    "//topaz/public/dart/fuchsia_modular/examples/slider_mod",
    "//topaz/public/dart/fuchsia_modular/examples/slider_mod:slider_mod_tests",
    "//topaz/public/dart/fuchsia_modular_flutter:fuchsia_modular_flutter_unittests($host_toolchain)",
    "//topaz/public/dart/fuchsia_modular_testing:fuchsia_modular_testing_package_integration_tests",
    "//topaz/public/dart/fuchsia_scenic_flutter:fuchsia_scenic_flutter_unittests($host_toolchain)",
    "//topaz/public/dart/fuchsia_services:fuchsia_services_foo_test_server",
    "//topaz/public/dart/fuchsia_services:fuchsia_services_package_integration_tests",
    "//topaz/public/dart/fuchsia_services:fuchsia_services_package_unittests($host_toolchain)",
    "//topaz/public/dart/fuchsia_vfs:fuchsia_vfs_package_unittests",
    "//topaz/public/dart/fuchsia_webview_flutter:fuchsia_webview_flutter_target_tests",
    "//topaz/public/dart/fuchsia_webview_flutter:fuchsia_webview_flutter_unittests($host_toolchain)",
    "//topaz/public/dart/sledge:dart_sledge_tests($host_toolchain)",
    "//topaz/public/dart/sledge:sledge_integration_tests",
    "//topaz/public/dart/story_shell_labs:layout_unittests($host_toolchain)",
    "//topaz/public/dart/widgets:dart_widget_tests($host_toolchain)",
    "//topaz/public/dart/zircon:test_extract_zircon_constants($host_toolchain)",
    "//topaz/public/lib/display/flutter:display_test($host_toolchain)",
    "//topaz/runtime/chromium",
    "//topaz/runtime/chromium:chromium_prebuilts",
    "//topaz/runtime/chromium:web_runner",
    "//topaz/runtime/dart/utils:run_vmservice_object_tests",
    "//topaz/runtime/dart_runner/examples/goodbye_dart:goodbye_dart_test",
    "//topaz/runtime/dart_runner/integration:dart_aot_runner_test",
    "//topaz/runtime/dart_runner/integration:dart_jit_runner_test",
    "//topaz/tests/fidl-changes",
    "//topaz/tests/fidl-dangerous-identifiers",
    "//topaz/tests/web_runner_tests",
  ]
}

group("deprecated_shell_allowlist") {
  #  ________  _________  ________  ________
  # |\   ____\|\___   ___\\   __  \|\   __  \
  # \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
  #  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
  #   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
  #     ____\_\  \   \ \__\ \ \_______\ \__\
  #    |\_________\   \|__|  \|_______|\|__|
  #    \|_________|
  # This is an allowlist of packages that have components manifests that include
  # the "deprecated-shell" feature. Do not add to this list. If the manifest
  # does not otherwise include the feature you need, please file a feature
  # request for that fine-grained feature to help us support least-privileged
  # components.
  visibility = [
    "//topaz/tests/benchmarks/input_latency:topaz_input_latency_benchmarks",
  ]
}

group("rootjob_svc_allowlist") {
  #  ________  _________  ________  ________
  # |\   ____\|\___   ___\\   __  \|\   __  \
  # \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
  #  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
  #   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
  #     ____\_\  \   \ \__\ \ \_______\ \__\
  #    |\_________\   \|__|  \|_______|\|__|
  #    \|_________|
  # This is an allowlist of packages that have components manifests that include
  # the "fuchsia.boot.RootJob" service. This is a highly privileged service that vends
  # out a very powerful capability. Do not add yourself to this unless this is the only
  # way to accomplish your goal and you have talked to the security team about this.
  visibility = [
    "//topaz/tests/benchmarks/input_latency:topaz_input_latency_benchmarks",
  ]
}
