naiveproxy/testing/libfuzzer/fuzzers/BUILD.gn
2018-02-02 05:49:39 -05:00

521 lines
10 KiB
Plaintext

# 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.
# Individual libfuzzer tests that didn't find their home yet.
import("//build/config/features.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//third_party/protobuf/proto_library.gni")
# root BUILD depends on this target. Needed for package discovery
group("fuzzers") {
}
fuzzer_test("empty_fuzzer") {
sources = [
"empty_fuzzer.cc",
]
additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ]
}
fuzzer_test("courgette_fuzzer") {
sources = [
"courgette_fuzzer.cc",
]
deps = [
"//base",
"//courgette:courgette_lib",
]
additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ]
}
fuzzer_test("language_detection_fuzzer") {
sources = [
"language_detection_fuzzer.cc",
]
deps = [
"//base",
"//components/translate/core/language_detection:language_detection",
]
}
fuzzer_test("snappy_fuzzer") {
sources = [
"snappy_fuzzer.cc",
]
deps = [
"//third_party/snappy:snappy",
]
}
fuzzer_test("string_tokenizer_fuzzer") {
sources = [
"string_tokenizer_fuzzer.cc",
]
deps = [
"//base",
]
}
fuzzer_test("string_to_int_fuzzer") {
sources = [
"string_to_int_fuzzer.cc",
]
deps = [
"//base",
]
}
fuzzer_test("template_url_parser_fuzzer") {
sources = [
"template_url_parser_fuzzer.cc",
]
deps = [
"//base",
"//base:i18n",
"//components/search_engines:search_engines",
]
dict = "dicts/xml.dict"
libfuzzer_options = [ "max_len=4096" ]
}
fuzzer_test("url_parse_fuzzer") {
sources = [
"url_parse_fuzzer.cc",
]
deps = [
"//base",
"//base:i18n",
"//url:url",
]
dict = "dicts/generated/url_parse_fuzzer.dict"
}
fuzzer_test("url_parse_proto_fuzzer") {
sources = [
"url_parse_proto_fuzzer.cc",
]
deps = [
":url_proto",
"//base",
"//base:i18n",
"//third_party/libprotobuf-mutator",
"//url:url",
]
}
proto_library("url_proto") {
sources = [
"url.proto",
]
}
fuzzer_test("usrsctp_fuzzer") {
sources = [
"usrsctp_fuzzer.cc",
]
deps = [
"//third_party/usrsctp",
]
}
fuzzer_test("libsrtp_fuzzer") {
sources = [
"libsrtp_fuzzer.cc",
]
deps = [
"//third_party/libsrtp",
]
libfuzzer_options = [ "max_len=1500" ]
}
fuzzer_test("base_json_reader_fuzzer") {
sources = [
"base_json_reader_fuzzer.cc",
]
deps = [
"//base",
]
}
libpng_seed_corpuses = [
"//components/viz/test/data",
"//third_party/WebKit/LayoutTests/images/png-suite/samples",
"//third_party/WebKit/LayoutTests/images/resources/pngfuzz",
]
fuzzer_test("gfx_png_image_fuzzer") {
sources = [
"gfx_png_image_fuzzer.cc",
]
deps = [
"//base",
"//ui/gfx",
]
dict = "dicts/png.dict"
seed_corpuses = libpng_seed_corpuses
}
fuzzer_test("libxml_xml_read_memory_fuzzer") {
sources = [
"libxml_xml_read_memory_fuzzer.cc",
]
deps = [
"//third_party/libxml:libxml",
]
dict = "dicts/generated/libxml_xml_read_memory_fuzzer.dict"
}
fuzzer_test("libpng_read_fuzzer") {
sources = [
"libpng_read_fuzzer.cc",
]
deps = [
"//base",
"//third_party/libpng",
]
dict = "dicts/png.dict"
seed_corpuses = libpng_seed_corpuses
}
fuzzer_test("libpng_progressive_read_fuzzer") {
sources = [
"libpng_read_fuzzer.cc",
]
defines = [ "PNG_FUZZ_PROGRESSIVE" ]
deps = [
"//base",
"//third_party/libpng",
]
dict = "dicts/png.dict"
seed_corpuses = libpng_seed_corpuses
}
fuzzer_test("v8_script_parser_fuzzer") {
sources = []
deps = [
"//v8:parser_fuzzer",
]
dict = "dicts/generated/javascript.dict"
seed_corpus = "//v8/test/mjsunit/regress/"
libfuzzer_options = [ "only_ascii=1" ]
}
fuzzer_test("v8_json_parser_fuzzer") {
sources = []
deps = [
"//v8:json_fuzzer",
]
dict = "dicts/json.dict"
}
fuzzer_test("v8_regexp_parser_fuzzer") {
sources = []
deps = [
"//v8:regexp_fuzzer",
]
dict = "dicts/regexp.dict"
seed_corpus = "//v8/test/fuzzer/regexp/"
libfuzzer_options = [ "max_len=64" ]
}
fuzzer_test("v8_wasm_code_fuzzer") {
sources = []
deps = [
"//v8:wasm_code_fuzzer",
]
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_compile_fuzzer") {
sources = []
deps = [
"//v8:wasm_compile_fuzzer",
]
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_call_fuzzer") {
sources = []
deps = [
"//v8:wasm_call_fuzzer",
]
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_fuzzer") {
sources = []
deps = [
"//v8:wasm_fuzzer",
]
dict = "dicts/v8_wasm.dict"
seed_corpus = "//v8/test/fuzzer/wasm_corpus/"
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_async_fuzzer") {
sources = []
deps = [
"//v8:wasm_async_fuzzer",
]
dict = "dicts/v8_wasm.dict"
seed_corpus = "//v8/test/fuzzer/wasm_corpus/"
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_data_section_fuzzer") {
sources = []
deps = [
"//v8:wasm_data_section_fuzzer",
]
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_function_sigs_section_fuzzer") {
sources = []
deps = [
"//v8:wasm_function_sigs_section_fuzzer",
]
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_globals_section_fuzzer") {
sources = []
deps = [
"//v8:wasm_globals_section_fuzzer",
]
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_imports_section_fuzzer") {
sources = []
deps = [
"//v8:wasm_imports_section_fuzzer",
]
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_memory_section_fuzzer") {
sources = []
deps = [
"//v8:wasm_memory_section_fuzzer",
]
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_names_section_fuzzer") {
sources = []
deps = [
"//v8:wasm_names_section_fuzzer",
]
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("v8_wasm_types_section_fuzzer") {
sources = []
deps = [
"//v8:wasm_types_section_fuzzer",
]
libfuzzer_options = [ "max_len=500" ]
}
fuzzer_test("convert_woff2ttf_fuzzer") {
sources = [
"convert_woff2ttf_fuzzer.cc",
]
deps = [
"//third_party/woff2:woff2_dec",
]
seed_corpus = "//testing/libfuzzer/fuzzers/woff2_corpus"
libfuzzer_options = [ "max_len=803500" ]
}
fuzzer_test("flatbuffers_verifier_fuzzer") {
sources = [
"flatbuffers_verifier_fuzzer.cc",
]
deps = [
"//third_party/flatbuffers",
"//third_party/flatbuffers:flatbuffers_samplebuffer",
]
libfuzzer_options = [ "max_len=1024" ]
seed_corpus = "//testing/libfuzzer/fuzzers/flatbuffers_corpus"
}
fuzzer_test("skia_path_fuzzer") {
sources = [
"skia_path_common.cc",
"skia_path_common.h",
"skia_path_fuzzer.cc",
]
deps = [
"//skia",
]
libfuzzer_options = [ "max_len=256" ]
if (is_debug) {
# Disabled due to crashing on SkASSERT (crbug.com/642750, crbug.com/643275).
additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ]
}
}
fuzzer_test("skia_pathop_fuzzer") {
sources = [
"skia_path_common.cc",
"skia_path_common.h",
"skia_pathop_fuzzer.cc",
]
deps = [
"//base",
"//skia",
]
libfuzzer_options = [ "max_len=512" ]
if (is_debug) {
# Disabled due to crashing on SkASSERT (crbug.com/642750, crbug.com/643275).
additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ]
}
}
fuzzer_test("skia_color_space_fuzzer") {
sources = [
"color_space_data.h",
"skia_color_space_fuzzer.cc",
]
deps = [
"//base",
"//skia",
]
dict = "dicts/icc.dict"
libfuzzer_options = [ "max_len=4194304" ]
}
fuzzer_test("prtime_fuzzer") {
sources = [
"prtime_fuzzer.cc",
]
deps = [
"//base",
]
dict = "dicts/prtime.dict"
libfuzzer_options = [ "max_len=1024" ]
}
fuzzer_test("angle_translator_fuzzer") {
sources = []
deps = [
"//third_party/angle:translator_fuzzer",
]
libfuzzer_options = [ "max_len=1000" ]
}
if (target_cpu == "x86" || target_cpu == "x64") {
fuzzer_test("swiftshader_vertex_routine_fuzzer") {
sources = []
deps = [
"//third_party/swiftshader:vertex_routine_fuzzer",
]
}
}
fuzzer_test("sha1_fuzzer") {
sources = [
"sha1_fuzzer.cc",
]
deps = [
"//base",
]
}
fuzzer_test("hash_fuzzer") {
sources = [
"hash_fuzzer.cc",
]
deps = [
"//base",
]
}
# third_party/minizip/src is checked out only on unix platform by gclient.
if (is_linux) {
fuzzer_test("minizip_uncompress_fuzzer") {
sources = [
"minizip_uncompress_fuzzer.cc",
]
deps = [
"//third_party/minizip:minizip",
]
seed_corpus = "//testing/libfuzzer/fuzzers/minizip_uncompress_corpus"
}
fuzzer_test("minizip_compress_fuzzer") {
sources = [
"minizip_compress_fuzzer.cc",
]
deps = [
"//third_party/minizip:minizip",
]
}
}
action("gen_javascript_parser_proto") {
# Only targets in this file and the top-level visibility target can
# depend on this.
visibility = [
":*",
"//:gn_visibility",
]
script = "generate_javascript_parser_proto.py"
sources = [
"dicts/javascript_parser_proto.dict",
]
outputs = [
"$target_gen_dir/javascript_parser.proto",
"$target_gen_dir/javascript_parser_proto_to_string.cc",
]
args = rebase_path(outputs, root_build_dir) +
rebase_path(sources, root_build_dir)
}
proto_library("javascript_parser_proto") {
sources = [
"$target_gen_dir/javascript_parser.proto",
]
deps = [
":gen_javascript_parser_proto",
]
proto_out_dir = ""
}
fuzzer_test("javascript_parser_proto_fuzzer") {
sources = [
"$target_gen_dir/javascript_parser_proto_to_string.cc",
"javascript_parser_proto_fuzzer.cc",
"javascript_parser_proto_to_string.h",
]
deps = [
":gen_javascript_parser_proto",
":javascript_parser_proto",
"//third_party/libprotobuf-mutator",
"//v8:v8",
"//v8:v8_libplatform",
]
include_dirs = [ "$root_build_dir/$target_gen_dir" ]
}
fuzzer_test("v8_fully_instrumented_fuzzer") {
sources = [
"v8_fuzzer.cc",
]
deps = [
"//base",
"//v8:v8",
"//v8:v8_libplatform",
]
dict = "dicts/generated/javascript.dict"
libfuzzer_options = [ "only_ascii=1" ]
}