|  | # 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. | 
|  | # | 
|  | # Fuzzing Infrastructure Tests | 
|  |  | 
|  | import("//testing/test.gni") | 
|  | import("//testing/libfuzzer/fuzzer_test.gni") | 
|  |  | 
|  | test("libfuzzer_tests") { | 
|  | sources = [ | 
|  | "fuzzer_launcher_test.cc", | 
|  | ] | 
|  | deps = [ | 
|  | ":test_config_and_dict", | 
|  | ":test_config_and_seed_corpus", | 
|  | ":test_config_and_seed_corpuses", | 
|  | ":test_config_only", | 
|  | ":test_dict_from_subdir", | 
|  | ":test_dict_only", | 
|  | "//base", | 
|  | "//testing/gmock", | 
|  | "//testing/gtest", | 
|  | "//testing/gtest:gtest_main", | 
|  | ] | 
|  | data_deps = [ | 
|  | ":check_fuzzer_config", | 
|  | ":check_seed_corpus_archive", | 
|  | ] | 
|  | } | 
|  |  | 
|  | fuzzer_test("test_dict_only") { | 
|  | sources = [ | 
|  | "../fuzzers/empty_fuzzer.cc", | 
|  | ] | 
|  | dict = "test.dict" | 
|  | additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ] | 
|  | } | 
|  |  | 
|  | fuzzer_test("test_config_only") { | 
|  | sources = [ | 
|  | "../fuzzers/empty_fuzzer.cc", | 
|  | ] | 
|  | libfuzzer_options = [ | 
|  | "some_test_option=test_value", | 
|  | "max_len=1024", | 
|  | ] | 
|  | additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ] | 
|  | } | 
|  |  | 
|  | fuzzer_test("test_config_and_dict") { | 
|  | sources = [ | 
|  | "../fuzzers/empty_fuzzer.cc", | 
|  | ] | 
|  | dict = "test.dict" | 
|  | libfuzzer_options = [ | 
|  | "max_len=random(1337, 31337)", | 
|  | "timeout   =   666", | 
|  | "use_traces=1", | 
|  | ] | 
|  | additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ] | 
|  | } | 
|  |  | 
|  | fuzzer_test("test_config_and_seed_corpus") { | 
|  | sources = [ | 
|  | "../fuzzers/empty_fuzzer.cc", | 
|  | ] | 
|  | seed_corpus = "test_corpus" | 
|  | libfuzzer_options = [ | 
|  | "some_test_option=test_value", | 
|  | "max_len=1024", | 
|  | ] | 
|  | additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ] | 
|  | } | 
|  |  | 
|  | fuzzer_test("test_config_and_seed_corpuses") { | 
|  | sources = [ | 
|  | "../fuzzers/empty_fuzzer.cc", | 
|  | ] | 
|  | seed_corpuses = [ | 
|  | "test_corpus", | 
|  | "test_corpus_2", | 
|  | ] | 
|  | libfuzzer_options = [ | 
|  | "some_test_option=another_test_value", | 
|  | "max_len=1337", | 
|  | ] | 
|  | additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ] | 
|  | } | 
|  |  | 
|  | fuzzer_test("test_dict_from_subdir") { | 
|  | sources = [ | 
|  | "../fuzzers/empty_fuzzer.cc", | 
|  | ] | 
|  | dict = "dicts_subdir/test_subdir.dict" | 
|  | additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ] | 
|  | } | 
|  |  | 
|  | copy("check_fuzzer_config") { | 
|  | sources = [ | 
|  | "check_fuzzer_config.py", | 
|  | ] | 
|  | outputs = [ | 
|  | "$root_build_dir/check_fuzzer_config.py", | 
|  | ] | 
|  | } | 
|  |  | 
|  | copy("check_seed_corpus_archive") { | 
|  | sources = [ | 
|  | "check_seed_corpus_archive.py", | 
|  | ] | 
|  | outputs = [ | 
|  | "$root_build_dir/check_seed_corpus_archive.py", | 
|  | ] | 
|  | } |