# 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.
#
import("//build/test.gni")
import("//build/test/test_package.gni")

test("fake-object") {
  if (is_fuchsia) {
    configs += [ "//build/unification/config:zircon-migrated" ]
    fdio_config = [ "//build/config/fuchsia:fdio_config" ]
    if (configs + fdio_config - fdio_config != configs) {
      configs -= fdio_config
    }
  }
  sources = [ "fake-object-test.cc" ]
  deps = [
    "//src/devices/testing/fake-object",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zx",
    "//zircon/public/lib/zxc",
    "//zircon/public/lib/zxtest",
  ]
}

unittest_package("fake-object-package") {
  package_name = "fake-object"
  deps = [ ":fake-object" ]

  tests = [
    {
      name = "fake-object"
      dest = "fake-object-test"
    },
  ]
}
