# Copyright 2019 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("lib") {
  testonly = true
  deps = [
    ":tests",
    "backoff",
    "callback",
    "chunked-compression",
    "cobalt",
    "directed_graph",
    "elflib",
    "fake-clock",
    "fdio",
    "fidl_table_validation",
    "files",
    "fuchsia-async-testloop",
    "fuchsia-url",
    "http-sse:http_sse",
    "http-uri-ext",
    "icu",
    "icu_data",
    "inet",
    "intl",
    "isolated_devmgr",
    "mapped-vmo",
    "mdns",
    "mundane",
    "network",
    "pkg_url",
    "shared-buffer",
    "storage",
    "syslog",
    "tcp-stream-ext",
    "testing",
    "timekeeper",
    "trace",
    "ui",
    "url",
    "usb_bulk",
    "uuid",
    "vmo_store",
    "zerocopy",
  ]
}

group("tests") {
  testonly = true

  deps = [
    "backoff:tests",
    "by_addr:tests",
    "callback:tests",
    "chunked-compression:tests",
    "cmx:tests",
    "cobalt:tests",
    "component:tests",
    "containers/cpp:tests",
    "cstr:tests",
    "directed_graph:tests",
    "elflib:tests",
    "error/clonable_error:tests",
    "fake-clock:tests",
    "fdio:tests",
    "fidl:tests",
    "fidl_codec:tests",
    "fidl_table_validation:tests",
    "fuchsia-async:tests",
    "fuchsia-async-testloop:tests",
    "fuchsia-component:tests",
    "fuchsia-url:tests",
    "fuzzing:tests",
    "http-sse:tests",
    "http-uri-ext:tests",
    "icu:tests",
    "icu_data:tests",
    "inet:tests",
    "intl:tests",
    "isolated_devmgr:tests",
    "json_parser:tests",
    "line_input:tests",
    "mapped-vmo:tests",
    "mdns:tests",
    "mpmc:tests",
    "mundane:tests",
    "network:tests",
    "process_builder:tests",
    "scoped_task:tests",
    "shared-buffer:tests",
    "storage:tests",
    "streammap:tests",
    "syslog:tests",
    "tcp-stream-ext:tests",
    "test_executor:tests",
    "test_util:tests",
    "testing:tests",
    "timekeeper:tests",
    "trace:tests",
    "ui:rust-ui-crates-tests",
    "ui:tests",
    "usb_bulk:tests",
    "vmo_store:tests",
    "waitgroup:tests",
    "watch_handler:tests",
    "zerocopy:tests",
    "zircon:tests",
    "zxc:tests",
  ]
}
