# 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/go/go_library.gni")
import("//build/go/go_test.gni")
import("//build/testing/host_test_data.gni")

go_library("elflib") {
  sources = [
    "elflib.go",
    "elflib_test.go",
    "pe.go",
    "pe_test.go",
    "sources.go",
    "sources_test.go",
  ]
}

_testdata_path = "$target_gen_dir/testdata"

go_test("elflib_tests") {
  gopackages = [ "go.fuchsia.dev/fuchsia/tools/debug/elflib" ]
  args = [
    "--test_data_dir",
    rebase_path(_testdata_path, root_build_dir),
  ]
  deps = [ ":elflib" ]
  non_go_deps = [ ":testdata" ]
}

host_test_data("testdata") {
  sources = [ "testdata" ]
  outputs = [ _testdata_path ]
}
