# 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/dist/resource.gni")
import("//build/fuzz.gni")

fuchsia_library_fuzzer("crash_fuzzer") {
  sources = [ "crash.cc" ]
}

fuchsia_library_fuzzer("overflow_fuzzer") {
  sources = [ "overflow.cc" ]
}

fuchsia_library_fuzzer("corpus_fuzzer") {
  sources = [ "corpus.cc" ]
}

# Same as `corpus_fuzzer`, but without the seed corpus. This can be used to illustrate the
# difference providing a seed corpus can make on fuzzer coverage.
fuchsia_library_fuzzer("corpus_fuzzer_without_corpus") {
  sources = [ "corpus.cc" ]
}

resource("dictionary_fuzzer-dictionary") {
  sources = [ "example-dictionary" ]
  outputs = [ "data/{{source_file_part}}" ]
}

fuchsia_library_fuzzer("dictionary_fuzzer") {
  sources = [ "dictionary.cc" ]
}

# Same as `dictionary_fuzzer`, but without the dictionary. This can be used to illustrate the
# difference providing a dictionary can make on fuzzer performance.
fuchsia_library_fuzzer("dictionary_fuzzer_without_dictionary") {
  sources = [ "corpus.cc" ]
}

fuchsia_library_fuzzer("fuzzed_data_provider_fuzzer") {
  sources = [ "fuzzed-data-provider.cc" ]
}

fuchsia_library_fuzzer("noop_fuzzer") {
  sources = [ "noop.cc" ]
}

fuchsia_library_fuzzer("out_of_memory_fuzzer") {
  sources = [ "oom.cc" ]
}
