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

test("dlfcn") {
  sources = [ "dlfcn.cc" ]
  deps = [
    "//sdk/lib/fdio",
    "//src/lib/loader_service",
    "//zircon/public/lib/async",
    "//zircon/public/lib/zx",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/elfload",
  ]

  data_deps = [ ":test-dso-no-note" ]
}

loadable_module("test-dso-no-note") {
  visibility = [ ":*" ]

  testonly = true
  sources = [ "test-dso-no-note.cc" ]
  configs += [ ":no-build-id" ]
}

config("no-build-id") {
  visibility = [ ":*" ]
  ldflags = [ "-Wl,--build-id=none" ]
}

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