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

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

source_set("predicates") {
  testonly = true
  sources = [
    "status.cc",
    "status.h",
  ]
  public_deps = [
    # "status.h" has #include <gtest/gtest.h>.
    "//third_party/googletest:gtest",

    # "status.h" has #include <zircon/status.h>.
    "//src/zircon/lib/zircon:headers",

    # "status.h" has #include <lib/fit/result.h>
    "//sdk/lib/fit",
  ]
}

test("predicates-lib-unittests") {
  sources = [ "predicates_test.cc" ]
  deps = [
    ":predicates",
    "//src/lib/fxl/test:gtest_main",
    "//zircon/system/ulib/zx",
  ]
}

fuchsia_unittest_package("predicates-lib-test") {
  deps = [ ":predicates-lib-unittests" ]

  test_specs = {
    environments = [ emu_env ]
  }
}

group("tests") {
  testonly = true
  deps = [ ":predicates-lib-test" ]
}
