blob: 82372cc696e06b917a4283c7eb72330ad0a00f43 [file] [log] [blame]
# Copyright 2024 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//chrome/test/fuzzing/in_process_fuzzer.gni")
import("//testing/libfuzzer/research/domatolpm/domatolpm.gni")
import("//third_party/blink/renderer/bindings/bindings.gni")
group("test") {
testonly = true
}
if (!is_android && !is_msan && fuzzing_engine_supports_custom_main) {
action("webidl_grammar_generator") {
script =
"//chrome/test/fuzzing/webidl_fuzzing/grammar_generator/generator.py"
args = [
"-p",
rebase_path(web_idl_database_filepath, root_build_dir),
"-o",
rebase_path("${target_gen_dir}/webidl.txt", root_build_dir),
"-i",
rebase_path(
"//chrome/test/fuzzing/webidl_in_process_fuzzer_grammar/webidlhelpers.txt",
target_gen_dir),
]
deps = [ "//third_party/blink/renderer/bindings:web_idl_database" ]
outputs = [ "${target_gen_dir}/webidl.txt" ]
}
domatolpm_fuzzer("webidl_fuzzer_grammar") {
stabilize_grammar = true
template_file =
"//chrome/test/fuzzing/webidl_in_process_fuzzer_grammar/template.js"
grammars = [ "webidlfuzzer:${target_gen_dir}/webidl.txt" ]
deps = [ ":webidl_grammar_generator" ]
}
in_process_fuzzer("webidl_in_process_fuzzer") {
sources = [ "webidl_in_process_fuzzer.cc" ]
centipede_options = [ "batch_size=100" ]
deps = [
":webidl_fuzzer_grammar",
"//chrome/test/fuzzing:in_process_proto_fuzzer_runner",
"//testing/libfuzzer/research/domatolpm:domatolpm_context",
"//third_party/libprotobuf-mutator",
]
}
}