# 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/bin/userpicker_base_shell",
    "//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/examples/ui/localized_mod",
    "//topaz/examples/ui/simple_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/runtime/flutter_runner:flutter_aot_product_runner",
    "//topaz/runtime/flutter_runner:flutter_aot_runner",
    "//topaz/runtime/flutter_runner:flutter_jit_product_runner",
    "//topaz/runtime/flutter_runner:flutter_jit_runner",
    "//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/prod:integration_testing",
    "//peridot/packages/tests:ledger",
    "//peridot/packages/tests:modular_test_harness",
    "//src/fonts",
    "//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",
    "//topaz/public/dart/fuchsia_inspect/examples/inspect_mod:inspect_mod_test",
    "//topaz/public/dart/fuchsia_inspect/test/inspect_flutter_integration_tester",
    "//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/runtime/flutter_runner:flutter_runner_tests",
    "//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/bin/flutter_screencap_test:flutter_screencap_test_pkg",
    "//topaz/examples/test/driver_example_mod:driver_example_mod_tests_pkg",
    "//topaz/public/dart/fuchsia_inspect/examples/inspect_mod:inspect_mod_test_pkg",
    "//topaz/public/dart/fuchsia_inspect/test/inspect_flutter_integration_tester:inspect_dart_integration_test_driver_pkg",
    "//topaz/public/dart/fuchsia_inspect/test/integration:dart_inspect_vmo_test",
    "//topaz/public/dart/fuchsia_modular/examples/slider_mod:slider_mod_tests_pkg",
    "//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",
  ]
}
