blob: 00844079f13da15d54c76deab202cac9c3eb195e [file] [log] [blame]
Corentin Wallez5929a042021-03-15 08:43:11 +00001# Copyright 2021 The Tint Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15import("//build_overrides/build.gni")
16import("../tint_overrides_with_defaults.gni")
17
18# Fuzzers - Libfuzzer based fuzzing targets for Chromium
19# To run the fuzzers outside of Chromium, use the CMake based builds.
20
21if (build_with_chromium) {
22 import("//testing/libfuzzer/fuzzer_test.gni")
23
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +000024 fuzzer_corpus_wgsl_dir = "${target_gen_dir}/fuzzer_corpus_wgsl"
25 action("tint_generate_wgsl_corpus") {
26 script = "generate_wgsl_corpus.py"
27 sources = [ "generate_wgsl_corpus.py" ]
Alastair Donaldson86dc8872021-07-16 20:56:55 +000028 args = [
29 rebase_path("${tint_root_dir}/test", root_build_dir),
30 rebase_path(fuzzer_corpus_wgsl_dir, root_build_dir),
31 ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +000032 outputs = [ fuzzer_corpus_wgsl_dir ]
33 }
34
Ryan Harrison5093b9f2021-09-02 19:59:35 +000035 tint_fuzzer_common_libfuzzer_options = [
36 "only_ascii=1",
37 "max_len=10000",
Alastair Donaldson86dc8872021-07-16 20:56:55 +000038 ]
39
Ryan Harrison5093b9f2021-09-02 19:59:35 +000040 tint_ast_fuzzer_common_libfuzzer_options =
41 tint_fuzzer_common_libfuzzer_options + [
42 "cross_over=0",
43 "mutate_depth=1",
44 "tint_enable_all_mutations=false",
45 "tint_mutation_batch_size=5",
46 ]
47
48 tint_regex_fuzzer_common_libfuzzer_options =
49 tint_fuzzer_common_libfuzzer_options + [
50 "cross_over=0",
51 "mutate_depth=1",
52 ]
Alastair Donaldson1f0200a2021-07-29 11:58:18 +000053
Corentin Wallez5929a042021-03-15 08:43:11 +000054 # fuzzer_test doesn't have configs members, so need to define them in an empty
55 # source_set.
56
57 source_set("tint_fuzzer_common") {
58 public_configs = [
Corentin Wallezc205c282021-03-15 15:09:11 +000059 "${tint_root_dir}/src:tint_config",
60 "${tint_root_dir}/src:tint_common_config",
Corentin Wallez5929a042021-03-15 08:43:11 +000061 ]
62
Corentin Wallez98c2cf02021-04-21 14:58:42 +000063 public_deps = [
64 "${tint_root_dir}/src:libtint",
65 "${tint_spirv_tools_dir}/:spvtools_val",
66 ]
Corentin Wallez5929a042021-03-15 08:43:11 +000067
68 sources = [
Ryan Harrison5dc0ea72021-09-03 00:59:35 +000069 "random_generator.cc",
70 "random_generator.h",
Corentin Wallezc205c282021-03-15 15:09:11 +000071 "tint_common_fuzzer.cc",
72 "tint_common_fuzzer.h",
Corentin Wallez5929a042021-03-15 08:43:11 +000073 ]
74 }
75
Antonio Maiorano15e89fa2021-08-05 15:52:58 +000076 source_set("tint_fuzzer_common_with_init") {
77 public_deps = [ ":tint_fuzzer_common" ]
78
79 sources = [
80 "cli.cc",
81 "cli.h",
82 "tint_init_fuzzer.cc",
83 "tint_init_fuzzer.h",
84 ]
85 }
Corentin Wallez5929a042021-03-15 08:43:11 +000086 if (tint_build_wgsl_reader) {
87 fuzzer_test("tint_wgsl_reader_fuzzer") {
Corentin Wallezc205c282021-03-15 15:09:11 +000088 sources = [ "tint_wgsl_reader_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +000089 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +000090 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +000091 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +000092 seed_corpus = fuzzer_corpus_wgsl_dir
93 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Corentin Wallez5929a042021-03-15 08:43:11 +000094 }
95 }
96
97 if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
Alastair Donaldsona96dce92021-08-25 16:14:43 +000098 fuzzer_test("tint_ast_clone_fuzzer") {
99 sources = [ "tint_ast_clone_fuzzer.cc" ]
100 deps = [ ":tint_fuzzer_common_with_init" ]
101 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000102 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsona96dce92021-08-25 16:14:43 +0000103 seed_corpus = fuzzer_corpus_wgsl_dir
104 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
105 }
106
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000107 fuzzer_test("tint_ast_wgsl_writer_fuzzer") {
Alastair Donaldson44a0adf2021-08-31 22:07:17 +0000108 sources = [ "tint_ast_fuzzer/tint_ast_wgsl_writer_fuzzer.cc" ]
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000109 deps = [ "tint_ast_fuzzer:tint_ast_fuzzer" ]
Sarah485a45d2021-09-03 22:19:26 +0000110 libfuzzer_options = tint_ast_fuzzer_common_libfuzzer_options
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000111 seed_corpus = fuzzer_corpus_wgsl_dir
112 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
113 }
114
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000115 fuzzer_test("tint_regex_wgsl_writer_fuzzer") {
Alastair Donaldson44a0adf2021-08-31 22:07:17 +0000116 sources = [ "tint_regex_fuzzer/tint_regex_wgsl_writer_fuzzer.cc" ]
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000117 deps = [ "tint_regex_fuzzer:tint_regex_fuzzer" ]
Sarahed18f2f2021-09-03 23:26:48 +0000118 libfuzzer_options = tint_regex_fuzzer_common_libfuzzer_options
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000119 seed_corpus = fuzzer_corpus_wgsl_dir
120 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
121 }
122
Corentin Wallez5929a042021-03-15 08:43:11 +0000123 fuzzer_test("tint_wgsl_reader_wgsl_writer_fuzzer") {
Corentin Wallezc205c282021-03-15 15:09:11 +0000124 sources = [ "tint_wgsl_reader_wgsl_writer_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000125 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000126 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000127 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000128 seed_corpus = fuzzer_corpus_wgsl_dir
129 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Corentin Wallez5929a042021-03-15 08:43:11 +0000130 }
131 }
132
133 if (tint_build_wgsl_reader && tint_build_spv_writer) {
Corentin Wallez5929a042021-03-15 08:43:11 +0000134 fuzzer_test("tint_all_transforms_fuzzer") {
Corentin Wallezc205c282021-03-15 15:09:11 +0000135 sources = [ "tint_all_transforms_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000136 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000137 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000138 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000139 seed_corpus = fuzzer_corpus_wgsl_dir
140 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Corentin Wallez5929a042021-03-15 08:43:11 +0000141 }
142
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000143 fuzzer_test("tint_ast_spv_writer_fuzzer") {
Alastair Donaldson44a0adf2021-08-31 22:07:17 +0000144 sources = [ "tint_ast_fuzzer/tint_ast_spv_writer_fuzzer.cc" ]
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000145 deps = [ "tint_ast_fuzzer:tint_ast_fuzzer" ]
Sarah485a45d2021-09-03 22:19:26 +0000146 libfuzzer_options = tint_ast_fuzzer_common_libfuzzer_options
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000147 seed_corpus = fuzzer_corpus_wgsl_dir
148 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
149 }
150
Ryan Harrisonb5c908f2021-04-28 15:35:43 +0000151 fuzzer_test("tint_binding_remapper_fuzzer") {
152 sources = [ "tint_binding_remapper_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000153 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000154 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000155 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000156 seed_corpus = fuzzer_corpus_wgsl_dir
157 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Ryan Harrisonb5c908f2021-04-28 15:35:43 +0000158 }
159
Corentin Wallez5929a042021-03-15 08:43:11 +0000160 fuzzer_test("tint_first_index_offset_fuzzer") {
Corentin Wallezc205c282021-03-15 15:09:11 +0000161 sources = [ "tint_first_index_offset_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000162 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000163 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000164 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000165 seed_corpus = fuzzer_corpus_wgsl_dir
166 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Corentin Wallez5929a042021-03-15 08:43:11 +0000167 }
168
169 fuzzer_test("tint_inspector_fuzzer") {
Corentin Wallezc205c282021-03-15 15:09:11 +0000170 sources = [ "tint_inspector_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000171 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000172 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000173 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000174 seed_corpus = fuzzer_corpus_wgsl_dir
175 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Corentin Wallez5929a042021-03-15 08:43:11 +0000176 }
Ryan Harrisonfc579792021-04-29 20:12:05 +0000177
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000178 fuzzer_test("tint_regex_spv_writer_fuzzer") {
Alastair Donaldson44a0adf2021-08-31 22:07:17 +0000179 sources = [ "tint_regex_fuzzer/tint_regex_spv_writer_fuzzer.cc" ]
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000180 deps = [ "tint_regex_fuzzer:tint_regex_fuzzer" ]
Sarahed18f2f2021-09-03 23:26:48 +0000181 libfuzzer_options = tint_regex_fuzzer_common_libfuzzer_options
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000182 seed_corpus = fuzzer_corpus_wgsl_dir
183 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
184 }
185
Ryan Harrisonbc5461d2021-04-29 20:43:45 +0000186 fuzzer_test("tint_renamer_fuzzer") {
187 sources = [ "tint_renamer_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000188 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000189 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000190 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000191 seed_corpus = fuzzer_corpus_wgsl_dir
192 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Ryan Harrisonbc5461d2021-04-29 20:43:45 +0000193 }
194
Ben Clayton0273f1a2021-06-30 13:23:36 +0000195 fuzzer_test("tint_robustness_fuzzer") {
196 sources = [ "tint_robustness_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000197 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000198 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000199 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000200 seed_corpus = fuzzer_corpus_wgsl_dir
201 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Ben Clayton0273f1a2021-06-30 13:23:36 +0000202 }
203
Ryan Harrison52456c62021-04-29 20:49:25 +0000204 fuzzer_test("tint_single_entry_point_fuzzer") {
205 sources = [ "tint_single_entry_point_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000206 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000207 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000208 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000209 seed_corpus = fuzzer_corpus_wgsl_dir
210 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Ryan Harrison52456c62021-04-29 20:49:25 +0000211 }
212
Ryan Harrisona0174e62021-05-06 15:43:33 +0000213 fuzzer_test("tint_vertex_pulling_fuzzer") {
214 sources = [ "tint_vertex_pulling_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000215 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000216 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000217 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000218 seed_corpus = fuzzer_corpus_wgsl_dir
219 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Ryan Harrisona0174e62021-05-06 15:43:33 +0000220 }
221
Ryan Harrisonbc5461d2021-04-29 20:43:45 +0000222 fuzzer_test("tint_wgsl_reader_spv_writer_fuzzer") {
223 sources = [ "tint_wgsl_reader_spv_writer_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000224 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000225 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000226 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000227 seed_corpus = fuzzer_corpus_wgsl_dir
228 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Ryan Harrisonbc5461d2021-04-29 20:43:45 +0000229 }
Corentin Wallez5929a042021-03-15 08:43:11 +0000230 }
231
232 if (tint_build_wgsl_reader && tint_build_hlsl_writer) {
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000233 fuzzer_test("tint_ast_hlsl_writer_fuzzer") {
Alastair Donaldson44a0adf2021-08-31 22:07:17 +0000234 sources = [ "tint_ast_fuzzer/tint_ast_hlsl_writer_fuzzer.cc" ]
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000235 deps = [ "tint_ast_fuzzer:tint_ast_fuzzer" ]
Sarah485a45d2021-09-03 22:19:26 +0000236 libfuzzer_options = tint_ast_fuzzer_common_libfuzzer_options
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000237 seed_corpus = fuzzer_corpus_wgsl_dir
238 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
239 }
240
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000241 fuzzer_test("tint_regex_hlsl_writer_fuzzer") {
Alastair Donaldson44a0adf2021-08-31 22:07:17 +0000242 sources = [ "tint_regex_fuzzer/tint_regex_hlsl_writer_fuzzer.cc" ]
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000243 deps = [ "tint_regex_fuzzer:tint_regex_fuzzer" ]
Sarahed18f2f2021-09-03 23:26:48 +0000244 libfuzzer_options = tint_regex_fuzzer_common_libfuzzer_options
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000245 seed_corpus = fuzzer_corpus_wgsl_dir
246 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
247 }
248
Corentin Wallez5929a042021-03-15 08:43:11 +0000249 fuzzer_test("tint_wgsl_reader_hlsl_writer_fuzzer") {
Corentin Wallezc205c282021-03-15 15:09:11 +0000250 sources = [ "tint_wgsl_reader_hlsl_writer_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000251 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000252 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000253 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000254 seed_corpus = fuzzer_corpus_wgsl_dir
255 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Corentin Wallez5929a042021-03-15 08:43:11 +0000256 }
257 }
258
259 if (tint_build_wgsl_reader && tint_build_msl_writer) {
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000260 fuzzer_test("tint_ast_msl_writer_fuzzer") {
Alastair Donaldson44a0adf2021-08-31 22:07:17 +0000261 sources = [ "tint_ast_fuzzer/tint_ast_msl_writer_fuzzer.cc" ]
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000262 deps = [ "tint_ast_fuzzer:tint_ast_fuzzer" ]
Sarah485a45d2021-09-03 22:19:26 +0000263 libfuzzer_options = tint_ast_fuzzer_common_libfuzzer_options
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000264 seed_corpus = fuzzer_corpus_wgsl_dir
265 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
266 }
267
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000268 fuzzer_test("tint_regex_msl_writer_fuzzer") {
Alastair Donaldson44a0adf2021-08-31 22:07:17 +0000269 sources = [ "tint_regex_fuzzer/tint_regex_msl_writer_fuzzer.cc" ]
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000270 deps = [ "tint_regex_fuzzer:tint_regex_fuzzer" ]
Sarahed18f2f2021-09-03 23:26:48 +0000271 libfuzzer_options = tint_regex_fuzzer_common_libfuzzer_options
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000272 seed_corpus = fuzzer_corpus_wgsl_dir
273 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
274 }
275
Corentin Wallez5929a042021-03-15 08:43:11 +0000276 fuzzer_test("tint_wgsl_reader_msl_writer_fuzzer") {
Corentin Wallezc205c282021-03-15 15:09:11 +0000277 sources = [ "tint_wgsl_reader_msl_writer_fuzzer.cc" ]
Antonio Maiorano15e89fa2021-08-05 15:52:58 +0000278 deps = [ ":tint_fuzzer_common_with_init" ]
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000279 dict = "dictionary.txt"
Ryan Harrison5093b9f2021-09-02 19:59:35 +0000280 libfuzzer_options = tint_fuzzer_common_libfuzzer_options
Alastair Donaldsonff0a8f02021-07-13 17:11:35 +0000281 seed_corpus = fuzzer_corpus_wgsl_dir
282 seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ]
Corentin Wallez5929a042021-03-15 08:43:11 +0000283 }
284 }
285
Alastair Donaldson3e70f3e2021-09-02 15:55:01 +0000286 if (tint_build_wgsl_reader && tint_build_hlsl_writer &&
287 tint_build_msl_writer && tint_build_spv_writer &&
288 tint_build_wgsl_writer) {
289 executable("tint_black_box_fuzz_target") {
290 sources = [ "tint_black_box_fuzz_target.cc" ]
291 deps = [ ":tint_fuzzer_common" ]
292 }
293 }
294
Corentin Wallez5929a042021-03-15 08:43:11 +0000295 group("fuzzers") {
296 testonly = true
297 deps = []
298
299 if (tint_build_wgsl_reader) {
300 deps += [ ":tint_wgsl_reader_fuzzer" ]
301 }
302 if (tint_build_wgsl_reader && tint_build_wgsl_writer) {
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000303 deps += [
Alastair Donaldsona96dce92021-08-25 16:14:43 +0000304 ":tint_ast_clone_fuzzer",
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000305 ":tint_ast_wgsl_writer_fuzzer",
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000306 ":tint_regex_wgsl_writer_fuzzer",
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000307 ":tint_wgsl_reader_wgsl_writer_fuzzer",
308 ]
Corentin Wallez5929a042021-03-15 08:43:11 +0000309 }
310 if (tint_build_wgsl_reader && tint_build_spv_writer) {
311 deps += [
312 ":tint_all_transforms_fuzzer",
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000313 ":tint_ast_spv_writer_fuzzer",
Ryan Harrisonb5c908f2021-04-28 15:35:43 +0000314 ":tint_binding_remapper_fuzzer",
Corentin Wallez5929a042021-03-15 08:43:11 +0000315 ":tint_first_index_offset_fuzzer",
316 ":tint_inspector_fuzzer",
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000317 ":tint_regex_spv_writer_fuzzer",
Ryan Harrisonbc5461d2021-04-29 20:43:45 +0000318 ":tint_renamer_fuzzer",
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000319 ":tint_robustness_fuzzer",
Ryan Harrison52456c62021-04-29 20:49:25 +0000320 ":tint_single_entry_point_fuzzer",
Ryan Harrisona0174e62021-05-06 15:43:33 +0000321 ":tint_vertex_pulling_fuzzer",
Corentin Wallez5929a042021-03-15 08:43:11 +0000322 ":tint_wgsl_reader_spv_writer_fuzzer",
323 ]
324 }
325 if (tint_build_wgsl_reader && tint_build_hlsl_writer) {
Ryan Harrisondcd6b4d2021-04-29 20:03:35 +0000326 deps += [
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000327 ":tint_ast_hlsl_writer_fuzzer",
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000328 ":tint_regex_hlsl_writer_fuzzer",
Ryan Harrisondcd6b4d2021-04-29 20:03:35 +0000329 ":tint_wgsl_reader_hlsl_writer_fuzzer",
330 ]
Corentin Wallez5929a042021-03-15 08:43:11 +0000331 }
332 if (tint_build_wgsl_reader && tint_build_msl_writer) {
Ryan Harrisonb67d0492021-04-29 20:06:25 +0000333 deps += [
Alastair Donaldson86dc8872021-07-16 20:56:55 +0000334 ":tint_ast_msl_writer_fuzzer",
Alastair Donaldson1f0200a2021-07-29 11:58:18 +0000335 ":tint_regex_msl_writer_fuzzer",
Ryan Harrisonb67d0492021-04-29 20:06:25 +0000336 ":tint_wgsl_reader_msl_writer_fuzzer",
337 ]
Corentin Wallez5929a042021-03-15 08:43:11 +0000338 }
Alastair Donaldson6556ba02021-09-15 05:26:14 +0000339 if (tint_build_wgsl_reader && tint_build_hlsl_writer &&
340 tint_build_msl_writer && tint_build_spv_writer &&
341 tint_build_wgsl_writer) {
342 deps += [ ":tint_black_box_fuzz_target" ]
343 }
Corentin Wallez5929a042021-03-15 08:43:11 +0000344 }
345} else {
346 group("fuzzers") {
347 }
348}