| # 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("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_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" ] | 
 | } | 
 |  | 
 | 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_regexp_builtins_fuzzer") { | 
 |   sources = [] | 
 |   deps = [ | 
 |     "//v8:regexp_builtins_fuzzer", | 
 |   ] | 
 | } | 
 |  | 
 | fuzzer_test("v8_multi_return_fuzzer") { | 
 |   sources = [] | 
 |   deps = [ | 
 |     "//v8:multi_return_fuzzer", | 
 |   ] | 
 | } | 
 |  | 
 | 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_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" ] | 
 |   dict = "dicts/webgl-glsl.dict" | 
 | } | 
 |  | 
 | 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" ] | 
 | } | 
 |  | 
 | if (!is_win) { | 
 |   fuzzer_test("skia_image_filter_proto_fuzzer") { | 
 |     sources = [ | 
 |       "skia_image_filter_proto_fuzzer.cc", | 
 |     ] | 
 |  | 
 |     deps = [ | 
 |       "//base", | 
 |       "//base/test:test_support", | 
 |       "//skia", | 
 |       "//testing/libfuzzer/proto:skia_image_filter_converter", | 
 |       "//testing/libfuzzer/proto:skia_image_filter_proto", | 
 |       "//third_party/libprotobuf-mutator", | 
 |     ] | 
 |   } | 
 | } |