# 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/system/ulib/async",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/zx",
    "//zircon/system/ulib/zxtest",
  ]

  defines = [ "LIBPREFIX=\"/boot/lib/${toolchain_variant.libprefix}\"" ]

  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" ]
}
