# Copyright 2022 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/cpp/cpp_fuzzer.gni")
import("//build/fuzz.gni")
import("//build/test.gni")

group("tests") {
  testonly = true
  deps = [ ":ftl-fuzzers" ]
}

group("fuzzers") {
  testonly = true
  deps = [ ":ftl-fuzzers" ]
}

cpp_fuzzer("ftl-workload-fuzzer") {
  deps = [ "//src/storage/lib/ftl/test:ftl-workload-fuzzer" ]
  # Suppress logs on stdout from library under test
}

fuchsia_fuzzer_component("ftl-workload-fuzzer-component") {
  manifest = "meta/ftl-workload-fuzzer.cml"
  deps = [ ":ftl-workload-fuzzer" ]
}

if (is_fuchsia) {
  fuchsia_fuzzer_package("ftl-fuzzers") {
    cpp_fuzzer_components = [ ":ftl-workload-fuzzer-component" ]
  }
} else {
  group("ftl-fuzzers") {
    testonly = true
    deps = [ ":ftl-workload-fuzzer" ]
  }
}
