Skip to content

Commit

Permalink
Add grammar section to libfuzzer options file.
Browse files Browse the repository at this point in the history
Change-Id: I7b9300b0260cc734d955a59c11df8551fbfb1d04
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2080865
Commit-Queue: Max Moroz <mmoroz@chromium.org>
Reviewed-by: Max Moroz <mmoroz@chromium.org>
Reviewed-by: Martin Barbella <mbarbella@chromium.org>
Cr-Commit-Position: refs/heads/master@{#749241}
  • Loading branch information
mpherman2 authored and Commit Bot committed Mar 11, 2020
1 parent 5fdbd74 commit da6a45d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
8 changes: 7 additions & 1 deletion testing/libfuzzer/fuzzer_test.gni
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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") {
Expand Down Expand Up @@ -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 ]
Expand Down
7 changes: 6 additions & 1 deletion testing/libfuzzer/gen_fuzzer_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -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='+',
Expand All @@ -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()
Expand All @@ -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])
Expand Down

0 comments on commit da6a45d

Please sign in to comment.