# 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("diagnostics") {
  testonly = true
  deps = [
    ":tests",
    "archivist",
    "config",
    "kcounter",
    "sampler",
    "wasm",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "archivist:tests",
    "config:tests",
    "detect:tests",
    "iquery:tests",
    "lib:tests",
    "log_listener:tests",
    "persistence:tests",
    "sampler:tests",
    "tests",
    "triage:tests",
    "validator:tests",

    # Disabled due to lack of support in Clang and Rust toolchain;
    # see https://fxbug.dev/325488864.
    # "wasm:tests",
  ]
}

group("benchmarks") {
  testonly = true
  deps = [ "archivist:benchmarks" ]
}
