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

group("test") {
  testonly = true
  deps = [ ":hash-table-test" ]
}

test("hash-table-test") {
  if (is_fuchsia) {
    fdio_config = [ "//build/config/fuchsia:fdio_config" ]
    if (configs + fdio_config - fdio_config != configs) {
      configs -= fdio_config
    }
  }
  visibility = [ ":*" ]
  output_name = "trace-engine-hash-table-test"
  sources = [
    "../hash_table.h",
    "hash_table_test.cc",
  ]
  deps = [
    "//sdk/lib/fdio",
    "//zircon/system/ulib/zxtest",
  ]
}

fuchsia_unittest_package("hash-table-test-pkg") {
  package_name = "trace-engine-hash-table-test"
  deps = [ ":hash-table-test" ]
}

group("tests") {
  testonly = true
  deps = [ ":hash-table-test-pkg" ]
}
