Commit da6a45d3 authored by Mitchel Herman's avatar Mitchel Herman Committed by Commit Bot

Add grammar section to libfuzzer options file.

Change-Id: I7b9300b0260cc734d955a59c11df8551fbfb1d04
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2080865
Commit-Queue: Max Moroz <mmoroz@chromium.org>
Reviewed-by: default avatarMax Moroz <mmoroz@chromium.org>
Reviewed-by: default avatarMartin Barbella <mbarbella@chromium.org>
Cr-Commit-Position: refs/heads/master@{#749241}
parent 5fdbd748
......@@ -24,6 +24,7 @@ import("//testing/test.gni")
# - ubsan_options - UndefinedBehaviorSanitizer options.
# - seed_corpus - a directory with seed corpus.
# - seed_corpus_deps - dependencies for generating the seed corpus.
# - grammar - defines a grammar used by a grammar based mutator.
#
# If use_libfuzzer gn flag is defined, then proper fuzzer would be build.
# Without use_libfuzzer or use_afl a unit-test style binary would be built on
......@@ -90,7 +91,7 @@ template("fuzzer_test") {
if (defined(invoker.dict) || defined(invoker.libfuzzer_options) ||
defined(invoker.asan_options) || defined(invoker.msan_options) ||
defined(invoker.ubsan_options) ||
defined(invoker.environment_variables)) {
defined(invoker.environment_variables) || defined(invoker.grammar)) {
if (defined(invoker.dict)) {
# Copy dictionary to output.
copy(target_name + "_dict_copy") {
......@@ -142,6 +143,11 @@ template("fuzzer_test") {
args += invoker.environment_variables
}
if (defined(invoker.grammar)) {
args += [ "--grammar" ]
args += invoker.grammar
}
outputs = [ "$root_build_dir/$config_file_name" ]
}
test_deps += [ ":" + config_file_name ]
......
......@@ -40,6 +40,7 @@ def main():
parser.add_argument('--asan_options', nargs='+', default=[])
parser.add_argument('--msan_options', nargs='+', default=[])
parser.add_argument('--ubsan_options', nargs='+', default=[])
parser.add_argument('--grammar', nargs='+', default=[])
parser.add_argument(
'--environment_variables',
nargs='+',
......@@ -49,7 +50,8 @@ def main():
# Script shouldn't be invoked without any arguments, but just in case.
if not (args.dict or args.libfuzzer_options or args.environment_variables or
args.asan_options or args.msan_options or args.ubsan_options):
args.asan_options or args.msan_options or args.ubsan_options or
args.grammar):
return
config = ConfigParser.ConfigParser()
......@@ -70,6 +72,9 @@ def main():
AddSectionOptions(config, 'ubsan',
[option.split('=') for option in args.ubsan_options])
AddSectionOptions(config, 'grammar',
[option.split('=') for option in args.grammar])
AddSectionOptions(
config, 'env',
[option.split('=') for option in args.environment_variables])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment