| # 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/fuzz.gni") |
| |
| group("fuzzers") { |
| testonly = true |
| deps = [ |
| ":hermetic_tests", |
| |
| # This is an example, but doesn't have a test spec. |
| "rust:toy-example", |
| ] |
| } |
| |
| # This target is the same as the one above; whether fuzzers or unit tests are built depends on which |
| # toolchain variant is active. Typically, you should include fuzzers in your package's tests. |
| group("hermetic_tests") { |
| testonly = true |
| deps = [ ":fuzzing-examples" ] |
| } |
| |
| fuchsia_fuzzer_component("crash-fuzzer-component") { |
| component_name = "crash_fuzzer" |
| manifest = "cpp/meta/crash_fuzzer.cml" |
| deps = [ "cpp:crash_fuzzer" ] |
| } |
| |
| fuchsia_fuzzer_component("overflow-fuzzer-component") { |
| component_name = "overflow_fuzzer" |
| manifest = "cpp/meta/overflow_fuzzer.cml" |
| deps = [ "cpp:overflow_fuzzer" ] |
| } |
| |
| fuchsia_fuzzer_component("corpus-fuzzer-component") { |
| component_name = "corpus_fuzzer" |
| manifest = "cpp/meta/corpus_fuzzer.cml" |
| deps = [ |
| "cpp:corpus_fuzzer", |
| "cpp/example-corpus", |
| ] |
| } |
| |
| fuchsia_fuzzer_component("corpus-fuzzer-without-corpus-component") { |
| component_name = "corpus_fuzzer_without_corpus" |
| manifest = "cpp/meta/corpus_fuzzer_without_corpus.cml" |
| deps = [ "cpp:corpus_fuzzer_without_corpus" ] |
| } |
| |
| fuchsia_fuzzer_component("dictionary-fuzzer-component") { |
| component_name = "dictionary_fuzzer" |
| manifest = "cpp/meta/dictionary_fuzzer.cml" |
| deps = [ |
| "cpp:dictionary_fuzzer", |
| "cpp:dictionary_fuzzer-dictionary", |
| "cpp/example-corpus", |
| ] |
| } |
| |
| fuchsia_fuzzer_component("dictionary-fuzzer-without-dictionary-component") { |
| component_name = "dictionary_fuzzer_without_dictionary" |
| manifest = "cpp/meta/dictionary_fuzzer_without_dictionary.cml" |
| deps = [ |
| "cpp:dictionary_fuzzer_without_dictionary", |
| "cpp/example-corpus", |
| ] |
| } |
| |
| fuchsia_fuzzer_component("fuzzed-data-provider-fuzzer-component") { |
| component_name = "fuzzed_data_provider_fuzzer" |
| manifest = "cpp/meta/fuzzed_data_provider_fuzzer.cml" |
| deps = [ "cpp:fuzzed_data_provider_fuzzer" ] |
| } |
| |
| fuchsia_fuzzer_component("noop-fuzzer-component") { |
| component_name = "noop_fuzzer" |
| manifest = "cpp/meta/noop_fuzzer.cml" |
| deps = [ "cpp:noop_fuzzer" ] |
| } |
| |
| fuchsia_fuzzer_component("out-of-memory-fuzzer-component") { |
| component_name = "out_of_memory_fuzzer" |
| manifest = "cpp/meta/out_of_memory_fuzzer.cml" |
| deps = [ "cpp:out_of_memory_fuzzer" ] |
| } |
| |
| fuchsia_fuzzer_component("toy-example-arbitrary-component") { |
| component_name = "toy_example_arbitrary" |
| manifest = "rust/meta/toy_example_arbitrary.cml" |
| deps = [ "rust:toy_example_arbitrary" ] |
| } |
| |
| fuchsia_fuzzer_component("toy-example-raw-bytes-component") { |
| component_name = "toy_example_raw_bytes" |
| manifest = "rust/meta/toy_example_raw_bytes.cml" |
| deps = [ "rust:toy_example_raw_bytes" ] |
| } |
| |
| fuchsia_fuzzer_component("toy-example-with-main-component") { |
| component_name = "toy_example_with_main" |
| manifest = "rust/meta/toy_example_with_main.cml" |
| deps = [ "rust:toy_example_with_main" ] |
| } |
| |
| fuchsia_fuzzer_package("fuzzing-examples") { |
| # Packages can have non-default names. |
| package_name = "example-fuzzers" |
| |
| # Fuzzers are defined for each supported language |
| cpp_fuzzer_components = [ |
| ":crash-fuzzer-component", |
| ":overflow-fuzzer-component", |
| ":corpus-fuzzer-component", |
| ":corpus-fuzzer-without-corpus-component", |
| ":dictionary-fuzzer-component", |
| ":dictionary-fuzzer-without-dictionary-component", |
| ":fuzzed-data-provider-fuzzer-component", |
| ":noop-fuzzer-component", |
| ":out-of-memory-fuzzer-component", |
| ] |
| |
| # A fuzzers package can have fuzzers for multiple languages. |
| rust_fuzzer_components = [ |
| ":toy-example-arbitrary-component", |
| ":toy-example-raw-bytes-component", |
| ":toy-example-with-main-component", |
| ] |
| |
| deps = [ "zx" ] |
| } |