blob: 46fead844a95b34d5477462ba80384e6bc8fdd7d [file] [log] [blame]
# 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",
]
}