# 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("tests") {
  testonly = true
  deps = [
    ":listnode-package",
    ":listnode-tests($host_toolchain)",
  ]
}

source_set("listnode") {
  sources = [ "listnode.h" ]
}

test("listnode-tests") {
  output_name = "listnode-tests"

  # listnode should work in both C and C++.
  sources = [
    "listnode-test.c",
    "listnode-test.cc",
  ]
  deps = [
    ":listnode",
    "//zircon/system/ulib/zxtest",
  ]

  # TODO(https://fxbug.dev/42136089): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

fuchsia_unittest_package("listnode-package") {
  deps = [ ":listnode-tests" ]
}
