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

test("sysmem") {
  configs += [ "//build/unification/config:zircon-migrated" ]
  sources = [ "sysmem_tests.cc" ]
  deps = [
    "//sdk/fidl/fuchsia.sysinfo:fuchsia.sysinfo_c",
    "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_c",
    "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_llcpp",
    "//sdk/fidl/fuchsia.sysmem2:fuchsia.sysmem2_llcpp",
    "//sdk/lib/fdio",
    "//src/lib/ddk",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/fidl",
    "//zircon/public/lib/fidl-llcpp",
    "//zircon/public/lib/zx",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/async-loop",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/fidl-async-2",
  ]
}

test_package("sysmem-test") {
  deps = [ ":sysmem" ]
  tests = [
    {
      name = "sysmem"
    },
  ]
}

bootfs_test("sysmem-bootfs-test") {
  name = "sysmem"
  deps = [ ":sysmem" ]
}
