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

group("tests") {
  testonly = true
  deps = [
    "conformance",
    "dispatcher",
    "integration",
    "message_container",
    "transport",
    "wire_types",
  ]
}

source_set("arena_checker") {
  testonly = true
  public = [ "arena_checker.h" ]
  sources = [
    "arena_checker.cc",
    "arena_checker.h",
  ]
  public_deps = [
    "//sdk/lib/fidl",
    "//sdk/lib/fidl/cpp/wire",
  ]
}

source_set("types_test_utils") {
  testonly = true
  public = [ "types_test_utils.h" ]
  sources = [
    "types_test_utils.cc",
    "types_test_utils.h",
  ]
  public_deps = [
    "//sdk/lib/fidl",
    "//sdk/lib/fidl/cpp/wire",
    "//third_party/googletest:gtest",
  ]

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