# 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",
    "//sdk/cts/tests/pkg/fidl/cpp:tests",
    "//sdk/dart/fidl:fidl_detect_action(//build/dart:dartlang)",
    "//sdk/lib/fidl/cpp/fuzzing:tests",
    "//sdk/lib/fidl/llcpp:llcpp_sdk",
    "//sdk/lib/fidl_driver/tests",
    "//src/lib/fidl:tests",
    "//src/lib/fidl_table_validation/fidl_table_validation_tests",
    "//src/tests/fidl/dyn_suite",
    "//src/tests/fidl/go_bindings_test",
    "//third_party/go:fidl-tests",
    "//tools/fidl:tests",
    "//zircon/system/ulib/fidl-async-2/test",
  ]
}

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",
  ]
}
