blob: 8c30eb47d2b1aa6e768ab353233aad2e84e9e96c [file] [log] [blame]
# Copyright 2016 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.
# Fuzzers for content/ components.
import("//testing/libfuzzer/fuzzer_test.gni")
import("//third_party/protobuf/proto_library.gni")
# Empty group for package discovery.
group("fuzzer") {
}
source_set("fuzzer_support") {
sources = [
"fuzzer_support.cc",
"fuzzer_support.h",
]
public_deps = [
"//base",
"//content/renderer:for_content_tests",
"//content/shell:content_shell_lib",
"//content/test:test_support",
"//gin",
"//tools/v8_context_snapshot",
]
configs += [ "//tools/v8_context_snapshot:use_v8_context_snapshot" ]
testonly = true
}
fuzzer_test("origin_trial_token_fuzzer") {
sources = [
"origin_trial_token_fuzzer.cc",
]
deps = [
"//content/test:test_support",
]
dict =
"//content/test/data/fuzzer_dictionaries/origin_trial_token_fuzzer.dict"
seed_corpus = "//content/test/data/fuzzer_corpus/origin_trial_token_data/"
}
fuzzer_test("origin_policy_parser_fuzzer") {
sources = [
"origin_policy_parser_fuzzer.cc",
]
deps = [
"//content/test:test_support",
]
dict =
"//content/test/data/fuzzer_dictionaries/origin_policy_parser_fuzzer.dict"
seed_corpus = "//content/test/data/fuzzer_corpus/origin_policy_parser_data/"
}
fuzzer_test("renderer_fuzzer") {
sources = [
"renderer_fuzzer.cc",
]
deps = [
":fuzzer_support",
]
}
fuzzer_test("renderer_tree_fuzzer") {
sources = [
"renderer_tree_fuzzer.cc",
]
deps = [
":fuzzer_support",
]
additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ]
}
fuzzer_test("clear_site_data_fuzzer") {
sources = [
"clear_site_data_fuzzer.cc",
]
deps = [
"//content/test:test_support",
]
seed_corpus = "//content/test/data/fuzzer_corpus/clear_site_data/"
}
fuzzer_test("renderer_proto_tree_fuzzer") {
sources = [
"renderer_proto_tree_fuzzer.cc",
]
deps = [
":fuzzer_support",
":html_tree_proto",
"//third_party/libprotobuf-mutator",
]
additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ]
}
proto_library("html_tree_proto") {
sources = [
"html_tree.proto",
]
testonly = true
}
fuzzer_test("signed_exchange_envelope_fuzzer") {
sources = [
"signed_exchange_envelope_fuzzer.cc",
]
deps = [
"//base:i18n",
"//content/test:test_support",
]
seed_corpus = "//content/test/data/sxg/"
}
fuzzer_test("signed_exchange_signature_header_field_fuzzer") {
sources = [
"signed_exchange_signature_header_field_fuzzer.cc",
]
deps = [
"//base:i18n",
"//content/test:test_support",
]
seed_corpus = "//content/test/data/fuzzer_corpus/signed_exchange_signature_header_field_data/"
}
fuzzer_test("signed_exchange_certificate_chain_fuzzer") {
sources = [
"../../browser/web_package/signed_exchange_certificate_chain_fuzzer.cc",
]
deps = [
"//content/test:test_support",
]
seed_corpus = "//content/test/data/fuzzer_corpus/signed_exchange_certificate_chain_data/"
}
fuzzer_test("appcache_manifest_parser_fuzzer") {
sources = [
"appcache_manifest_parser_fuzzer.cc",
]
deps = [
"//base:i18n",
"//content/test:test_support",
]
dict = "//content/test/data/fuzzer_dictionaries/appcache_manifest_parser_fuzzer.dict"
seed_corpus =
"//third_party/WebKit/LayoutTests/http/tests/appcache/resources/"
}
fuzzer_test("merkle_integrity_source_stream_fuzzer") {
sources = [
"merkle_integrity_source_stream_fuzzer.cc",
]
# This fuzzer depends on net::FuzzedSourceStream, in net_fuzzer_test_support,
# but both it and //content:test_support set up similar globals. As
# MerkleIntegritySourceStream does not depend on anything in //content and
# will ultimately live in //net, use the //net one instead of the //content
# one.
deps = [
"//content/browser:for_content_tests",
"//content/renderer:for_content_tests",
"//content/shell:content_shell_lib",
"//content/test:test_support",
"//net:net_fuzzer_test_support",
"//net:test_support",
]
dict = "//content/test/data/fuzzer_dictionaries/merkle_integrity_source_stream_fuzzer.dict"
}