# Copyright 2016 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/package.gni")
import("//build/testing/environments.gni")
import("//src/modular/build/tests_package.gni")

group("peridot") {
  testonly = true
  deps = [
    ":peridot_tests",
    "lib",
    "tests",
  ]
}

config("internal") {
  include_dirs = [
    ".",
    "$root_gen_dir/peridot",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    ":peridot_tests",
    "//garnet/packages/prod:test_runner",
    "//garnet/packages/testing:run_test_component",
    "//peridot/packages/tests:ledger",
    "//src/ledger/bin",
    "//src/ledger/third_party/bup:bup_tests",
    "//src/modular:tests",
    "//src/stories/bin/discovermgr:discovermgr_tests",
    "//third_party/leveldb:leveldb_benchmarks",
    "//third_party/leveldb:leveldb_tests",
    "//third_party/re2:re2_tests",
  ]
}

# All peridot tests that can run as test binaries in a package, and are not
# associated with the package of a binary already anyway.
hermetic_tests_package("peridot_tests") {
  deps = [ "//peridot/lib:peridot_lib_unittests" ]
  environments = basic_envs
}
