12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # Copyright 2015 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- # LibFuzzer is a LLVM tool for coverage-guided fuzz testing.
- # See http://www.chromium.org/developers/testing/libfuzzer
- #
- # To enable libfuzzer, 'use_libfuzzer' GN option should be set to true.
- # Or to enable afl, 'use_afl' GN option should be set to true.
- import("//build/config/features.gni")
- import("//build/config/sanitizers/sanitizers.gni")
- # TODO(mmoroz): we should eventually rename this into "fuzzing_engine_main".
- source_set("libfuzzer_main") {
- deps = []
- sources = []
- if (use_libfuzzer) {
- deps += [ "//third_party/libFuzzer:libfuzzer" ]
- if (is_ios) {
- deps += [ "//testing/libfuzzer/fuzzer_support_ios:libfuzzer_main_ios" ]
- }
- } else if (use_afl) {
- deps += [ "//third_party/libFuzzer:afl_driver" ]
- } else {
- sources += [ "unittest_main.cc" ]
- }
- if (use_clang_coverage) {
- # For purposes of code coverage calculation, fuzzer targets are run through
- # a wrapper script in this directory, which handles corpus retrieval and
- # appropriate parameter passing to run the target in an isolate. This
- # directive makes this script and its dependencies to be included in the
- # target's isolate.
- data = [ "//tools/code_coverage/" ]
- }
- }
- # A config used by all fuzzer_tests.
- config("fuzzer_test_config") {
- if (use_libfuzzer && is_mac) {
- ldflags = [
- "-Wl,-U,_LLVMFuzzerCustomMutator",
- "-Wl,-U,_LLVMFuzzerInitialize",
- ]
- }
- }
- # Noop config used to tag fuzzer tests excluded from clusterfuzz.
- # Libfuzzer build bot uses this to filter out targets while
- # building an archive for clusterfuzz.
- config("no_clusterfuzz") {
- }
- # Since most iOS code doesn't compile in other platforms, and not all fuzzers
- # compile in iOS, a clusterfuzz job is set up to run only selected iOS fuzzers.
- # This is a noop config to tag fuzzer tests to be built for the job. iOS
- # Libfuzzer build bot uses this to filter targets while building an archive for
- # the job.
- config("build_for_ios_clusterfuzz_job") {
- }
- # noop to tag seed corpus rules.
- source_set("seed_corpus") {
- }
- if (use_fuzzing_engine) {
- pool("fuzzer_owners_pool") {
- depth = 1
- }
- }
|