| # 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. |
| |
| import("//build/config/features.gni") |
| import("//testing/test.gni") |
| |
| static_library("libfuzzer_main") { |
| # libfuzzer should be compiled without coverage (infinite loop in trace_cmp). |
| configs -= [ "//build/config/sanitizers:default_sanitizer_coverage_flags" ] |
| |
| sources = [ |
| "../../third_party/llvm/lib/Fuzzer/FuzzerCrossOver.cpp", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerDriver.cpp", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerFlags.def", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerIO.cpp", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerInterface.cpp", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerLoop.cpp", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerMain.cpp", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerMutate.cpp", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerSHA1.cpp", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerSanitizerOptions.cpp", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerTraceState.cpp", |
| "../../third_party/llvm/lib/Fuzzer/FuzzerUtil.cpp", |
| ] |
| } |
| |
| test("brotli_fuzzer") { |
| sources = [ |
| "brotli_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//third_party/brotli:brotli", |
| ] |
| } |
| |
| test("courgette_fuzzer") { |
| sources = [ |
| "courgette_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//base", |
| "//courgette:courgette_lib", |
| ] |
| } |
| |
| test("dns_record_fuzzer") { |
| sources = [ |
| "dns_record_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//net", |
| "//base", |
| ] |
| } |
| |
| test("es_parser_adts_fuzzer") { |
| sources = [ |
| "es_parser_adts_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//base", |
| "//media", |
| ] |
| } |
| |
| test("es_parser_h264_fuzzer") { |
| sources = [ |
| "es_parser_h264_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//base", |
| "//media", |
| ] |
| } |
| |
| test("es_parser_mpeg1audio_fuzzer") { |
| sources = [ |
| "es_parser_mpeg1audio_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//base", |
| "//media", |
| ] |
| } |
| |
| test("ftp_ctrl_response_fuzzer") { |
| sources = [ |
| "ftp_ctrl_response_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//net", |
| "//base", |
| ] |
| } |
| |
| test("ftp_directory_listing_fuzzer") { |
| sources = [ |
| "ftp_directory_listing_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//net", |
| "//base", |
| ] |
| } |
| |
| test("language_detection_fuzzer") { |
| sources = [ |
| "language_detection_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//base", |
| "//components/translate/core/language_detection:language_detection", |
| ] |
| } |
| |
| if (proprietary_codecs) { |
| test("mp4_box_reader_fuzzer") { |
| sources = [ |
| "mp4_box_reader_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//media", |
| ] |
| } |
| } |
| |
| test("snappy_fuzzer") { |
| sources = [ |
| "snappy_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//third_party/snappy:snappy", |
| ] |
| } |
| |
| test("string_tokenizer_fuzzer") { |
| sources = [ |
| "string_tokenizer_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//base", |
| ] |
| } |
| |
| test("string_to_int_fuzzer") { |
| sources = [ |
| "string_to_int_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//base", |
| ] |
| } |
| |
| test("unescape_url_component_fuzzer") { |
| sources = [ |
| "unescape_url_component_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//base", |
| "//net", |
| ] |
| } |
| |
| test("url_parse_fuzzer") { |
| sources = [ |
| "url_parse_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//url:url", |
| ] |
| } |
| |
| test("vp9_parser_fuzzer") { |
| sources = [ |
| "vp9_parser_fuzzer.cc", |
| ] |
| deps = [ |
| ":libfuzzer_main", |
| "//media", |
| ] |
| } |