# 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("//media/media_options.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", ] } if (proprietary_codecs) { fuzzer_test("mp4_box_reader_fuzzer") { sources = [ "mp4_box_reader_fuzzer.cc", ] deps = [ "//base", "//media", ] libfuzzer_options = [ "max_len=500" ] dict = "dicts/mp4.dict" } } if (enable_mse_mpeg2ts_stream_parser) { fuzzer_test("es_parser_adts_fuzzer") { sources = [ "es_parser_adts_fuzzer.cc", ] deps = [ "//base", "//media", ] } fuzzer_test("es_parser_h264_fuzzer") { sources = [ "es_parser_h264_fuzzer.cc", ] deps = [ "//base", "//media", ] } fuzzer_test("es_parser_mpeg1audio_fuzzer") { sources = [ "es_parser_mpeg1audio_fuzzer.cc", ] deps = [ "//base", "//media", ] } } 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("zlib_uncompress_fuzzer") { sources = [ "zlib_uncompress_fuzzer.cc", ] deps = [ "//third_party/zlib", ] } 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/v8_script_parser_fuzzer.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" ] } 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) { # TODO(yawano): Add compress test case fuzzer_test("minizip_uncompress_fuzzer") { sources = [ "minizip_uncompress_fuzzer.cc", ] deps = [ "//third_party/minizip:minizip", ] } }