# Copyright 2020 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("tests_no_e2e") {
  testonly = true
  assert_no_deps = e2e_test_libs

  deps = [
    ":tools",
    "//build/fidl:tests",
    "//examples/fidl:tests",
    "//garnet/examples/fidl/echo_server_cpp",
    "//garnet/examples/fidl/echo_server_cpp:echo_server_cpp_tests",
    "//sdk/cts/tests/pkg/fidl/cpp:tests",
    "//sdk/lib/fidl/cpp/fuzzing:tests",
    "//src/lib/fidl:tests",
    "//src/lib/fidl_table_validation/fidl_table_validation_tests",
    "//third_party/go:fidl-tests",
    "//tools/fidl:tests",
    "//zircon/system/ulib/fidl-async-2/test",
    "//zircon/system/utest/fidl-compiler($host_toolchain)",
  ]
}

group("e2e_tests") {
  testonly = true
  deps = [
    "//src/tests/benchmarks/fidl:benchmarks",
    "//src/tests/fidl/compatibility",
    "//src/tests/fidl/dangerous_identifiers:tests",
    "//src/tests/fidl/dart_bindings_test",
    "//src/tests/fidl/fidl_go_conformance:tests",
    "//src/tests/fidl/fuzzer:tests",
    "//src/tests/fidl/source_compatibility:tests",
  ]
}

group("tests") {
  testonly = true
  deps = [
    ":e2e_tests",
    ":tests_no_e2e",
  ]
}

group("tools") {
  deps = [
    "//src/tests/benchmarks/fidl/benchmark_suite/gen:host",
    "//tools/fidl/fidldoc",
  ]
}
