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

source_set("fuzzing") {
  testonly = true
  sources = [
    "decoder_encoder.h",
    "fuzzer.h",
    "server_provider.h",
    "traits.h",
  ]
  public_deps = [
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/fuzzing/cpp",
    "//sdk/lib/fuzzing/cpp:traits",
    "//zircon/system/public",
    "//zircon/system/ulib/async:async-cpp",
    "//zircon/system/ulib/async-default",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/fidl:fidl-llcpp",
  ]
  public_configs = [ "//sdk/config" ]
}

test("fidl_hlcpp_fuzzing_unittests") {
  sources = [ "traits_unittest.cc" ]
  deps = [
    ":fuzzing",
    "//src/lib/fxl/test:gtest_main",
  ]
}

fuchsia_unittest_package("fidl-hlcpp-fuzzing-tests") {
  component_name = "fidl_hlcpp_fuzzing_tests"
  manifest = "meta/fidl_hlcpp_fuzzing_tests.cmx"
  deps = [ ":fidl_hlcpp_fuzzing_unittests" ]
}

group("tests") {
  testonly = true
  deps = [ ":fidl-hlcpp-fuzzing-tests" ]
}
