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

import("//build/components.gni")

# Ensure FIDL snippets used in documentation builds.
group("all") {
  testonly = true
  deps = [
    "client",
    "client/wire",
    "client_sync",
    "client_sync/wire",
    "client_thread_safety",
    "domain_objects",
    "request_pipelining",
    "server",
    "server/wire",
    "server_async_completer",
    "services",
  ]
}

group("hermetic_tests") {
  testonly = true

  deps = [
    "domain_objects",

    # Client and server tests are exercised in //examples/fidl/echo-realm.
    "//examples/fidl/echo-realm:echo-cpp-async-test",
    "//examples/fidl/echo-realm:echo-cpp-client-sync-test",
    "//examples/fidl/echo-realm:echo-cpp-client-test",
    "//examples/fidl/echo-realm:echo-cpp-wire-client-shared-test",
    "//examples/fidl/echo-realm:echo-cpp-wire-client-sync-test",
    "//examples/fidl/echo-realm:echo-cpp-wire-client-test",
  ]
}
