Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 1 | # 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 | |
| 15 | import("//build_overrides/build.gni") |
| 16 | import("../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 | |
| 21 | if (build_with_chromium) { |
| 22 | import("//testing/libfuzzer/fuzzer_test.gni") |
| 23 | |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 24 | 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 Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 28 | args = [ |
| 29 | rebase_path("${tint_root_dir}/test", root_build_dir), |
| 30 | rebase_path(fuzzer_corpus_wgsl_dir, root_build_dir), |
| 31 | ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 32 | outputs = [ fuzzer_corpus_wgsl_dir ] |
| 33 | } |
| 34 | |
Alastair Donaldson | 9f4d94d | 2021-07-13 19:42:22 +0000 | [diff] [blame] | 35 | fuzzer_corpus_spirv_dir = "${target_gen_dir}/fuzzer_corpus_spirv" |
| 36 | action("tint_generate_spirv_corpus") { |
Alastair Donaldson | bbda572 | 2021-07-14 13:04:31 +0000 | [diff] [blame] | 37 | # The spirv-as tool is used to turn SPIR-V assembly files into binary form. |
| 38 | # When cross compiling, it is important that spirv-as is built for the |
| 39 | # *host* tool chain, and that the host version of spirv-as is used to |
| 40 | # prepare the corpus. |
Alastair Donaldson | 9f4d94d | 2021-07-13 19:42:22 +0000 | [diff] [blame] | 41 | spirv_as_target = "${tint_spirv_tools_dir}/:spirv-as(${host_toolchain})" |
| 42 | spirv_as_out_dir = get_label_info(spirv_as_target, "root_out_dir") |
| 43 | deps = [ spirv_as_target ] |
Alastair Donaldson | 9f4d94d | 2021-07-13 19:42:22 +0000 | [diff] [blame] | 44 | script = "generate_spirv_corpus.py" |
| 45 | sources = [ "generate_spirv_corpus.py" ] |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 46 | args = [ |
| 47 | rebase_path("${tint_root_dir}/test", root_build_dir), |
| 48 | rebase_path(fuzzer_corpus_spirv_dir, root_build_dir), |
| 49 | rebase_path("${spirv_as_out_dir}/spirv-as", root_build_dir), |
| 50 | ] |
Alastair Donaldson | 9f4d94d | 2021-07-13 19:42:22 +0000 | [diff] [blame] | 51 | outputs = [ fuzzer_corpus_spirv_dir ] |
| 52 | } |
| 53 | |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 54 | tint_ast_fuzzer_common_libfuzzer_options = [ |
| 55 | "cross_over=0", |
| 56 | "max_len=1000000", |
| 57 | "mutate_depth=1", |
| 58 | "tint_enable_all_mutations=false", |
| 59 | "tint_mutation_batch_size=5", |
| 60 | ] |
| 61 | |
| 62 | tint_spirv_tools_fuzzer_common_libfuzzer_options = [ |
| 63 | "cross_over=0", |
| 64 | "max_len=1000000", |
| 65 | "mutate_depth=1", |
| 66 | "tint_enable_all_fuzzer_passes=true", |
| 67 | "tint_enable_all_reduce_passes=true", |
| 68 | "tint_mutator_cache_size=30", |
| 69 | "tint_mutator_type=fuzz,opt,reduce", |
| 70 | "tint_opt_batch_size=5", |
| 71 | "tint_reduction_batch_size=5", |
| 72 | "tint_repeated_pass_strategy=looped", |
| 73 | "tint_transformation_batch_size=5", |
| 74 | ] |
| 75 | |
Alastair Donaldson | 1f0200a | 2021-07-29 11:58:18 +0000 | [diff] [blame] | 76 | tint_regex_fuzzer_common_libfuzzer_options = [ |
| 77 | "cross_over=0", |
| 78 | "max_len=100000", |
| 79 | "mutate_depth=1", |
| 80 | ] |
| 81 | |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 82 | # fuzzer_test doesn't have configs members, so need to define them in an empty |
| 83 | # source_set. |
| 84 | |
| 85 | source_set("tint_fuzzer_common") { |
| 86 | public_configs = [ |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 87 | "${tint_root_dir}/src:tint_config", |
| 88 | "${tint_root_dir}/src:tint_common_config", |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 89 | ] |
| 90 | |
Corentin Wallez | 98c2cf0 | 2021-04-21 14:58:42 +0000 | [diff] [blame] | 91 | public_deps = [ |
| 92 | "${tint_root_dir}/src:libtint", |
| 93 | "${tint_spirv_tools_dir}/:spvtools_val", |
| 94 | ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 95 | |
| 96 | sources = [ |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 97 | "tint_common_fuzzer.cc", |
| 98 | "tint_common_fuzzer.h", |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 99 | ] |
| 100 | } |
| 101 | |
| 102 | if (tint_build_wgsl_reader) { |
| 103 | fuzzer_test("tint_wgsl_reader_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 104 | sources = [ "tint_wgsl_reader_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 105 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 106 | dict = "dictionary.txt" |
| 107 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 108 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 109 | } |
| 110 | } |
| 111 | |
| 112 | if (tint_build_wgsl_reader && tint_build_wgsl_writer) { |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 113 | fuzzer_test("tint_ast_wgsl_writer_fuzzer") { |
| 114 | sources = [] |
| 115 | deps = [ "tint_ast_fuzzer:tint_ast_fuzzer" ] |
| 116 | libfuzzer_options = tint_ast_fuzzer_common_libfuzzer_options + |
| 117 | [ "tint_fuzzing_target=wgsl" ] |
| 118 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 119 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
| 120 | } |
| 121 | |
Alastair Donaldson | 1f0200a | 2021-07-29 11:58:18 +0000 | [diff] [blame] | 122 | fuzzer_test("tint_regex_wgsl_writer_fuzzer") { |
| 123 | sources = [] |
| 124 | deps = [ "tint_regex_fuzzer:tint_regex_fuzzer" ] |
| 125 | libfuzzer_options = tint_regex_fuzzer_common_libfuzzer_options + |
| 126 | [ "tint_fuzzing_target=wgsl" ] |
| 127 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 128 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
| 129 | } |
| 130 | |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 131 | fuzzer_test("tint_wgsl_reader_wgsl_writer_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 132 | sources = [ "tint_wgsl_reader_wgsl_writer_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 133 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 134 | dict = "dictionary.txt" |
| 135 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 136 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 137 | } |
| 138 | } |
| 139 | |
| 140 | if (tint_build_wgsl_reader && tint_build_spv_writer) { |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 141 | fuzzer_test("tint_all_transforms_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 142 | sources = [ "tint_all_transforms_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 143 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 144 | dict = "dictionary.txt" |
| 145 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 146 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 147 | } |
| 148 | |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 149 | fuzzer_test("tint_ast_spv_writer_fuzzer") { |
| 150 | sources = [] |
| 151 | deps = [ "tint_ast_fuzzer:tint_ast_fuzzer" ] |
| 152 | libfuzzer_options = tint_ast_fuzzer_common_libfuzzer_options + |
| 153 | [ "tint_fuzzing_target=spv" ] |
| 154 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 155 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
| 156 | } |
| 157 | |
Ryan Harrison | b5c908f | 2021-04-28 15:35:43 +0000 | [diff] [blame] | 158 | fuzzer_test("tint_binding_remapper_fuzzer") { |
| 159 | sources = [ "tint_binding_remapper_fuzzer.cc" ] |
| 160 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 161 | dict = "dictionary.txt" |
| 162 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 163 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Ryan Harrison | b5c908f | 2021-04-28 15:35:43 +0000 | [diff] [blame] | 164 | } |
| 165 | |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 166 | fuzzer_test("tint_first_index_offset_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 167 | sources = [ "tint_first_index_offset_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 168 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 169 | dict = "dictionary.txt" |
| 170 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 171 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 172 | } |
| 173 | |
| 174 | fuzzer_test("tint_inspector_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 175 | sources = [ "tint_inspector_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 176 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 177 | dict = "dictionary.txt" |
| 178 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 179 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 180 | } |
Ryan Harrison | fc57979 | 2021-04-29 20:12:05 +0000 | [diff] [blame] | 181 | |
Alastair Donaldson | 1f0200a | 2021-07-29 11:58:18 +0000 | [diff] [blame] | 182 | fuzzer_test("tint_regex_spv_writer_fuzzer") { |
| 183 | sources = [] |
| 184 | deps = [ "tint_regex_fuzzer:tint_regex_fuzzer" ] |
| 185 | libfuzzer_options = tint_regex_fuzzer_common_libfuzzer_options + |
| 186 | [ "tint_fuzzing_target=spv" ] |
| 187 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 188 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
| 189 | } |
| 190 | |
Ryan Harrison | bc5461d | 2021-04-29 20:43:45 +0000 | [diff] [blame] | 191 | fuzzer_test("tint_renamer_fuzzer") { |
| 192 | sources = [ "tint_renamer_fuzzer.cc" ] |
| 193 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 194 | dict = "dictionary.txt" |
| 195 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 196 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Ryan Harrison | bc5461d | 2021-04-29 20:43:45 +0000 | [diff] [blame] | 197 | } |
| 198 | |
Ben Clayton | 0273f1a | 2021-06-30 13:23:36 +0000 | [diff] [blame] | 199 | fuzzer_test("tint_robustness_fuzzer") { |
| 200 | sources = [ "tint_robustness_fuzzer.cc" ] |
| 201 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 202 | dict = "dictionary.txt" |
| 203 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 204 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Ben Clayton | 0273f1a | 2021-06-30 13:23:36 +0000 | [diff] [blame] | 205 | } |
| 206 | |
Ryan Harrison | 52456c6 | 2021-04-29 20:49:25 +0000 | [diff] [blame] | 207 | fuzzer_test("tint_single_entry_point_fuzzer") { |
| 208 | sources = [ "tint_single_entry_point_fuzzer.cc" ] |
| 209 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 210 | dict = "dictionary.txt" |
| 211 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 212 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Ryan Harrison | 52456c6 | 2021-04-29 20:49:25 +0000 | [diff] [blame] | 213 | } |
| 214 | |
Ryan Harrison | a0174e6 | 2021-05-06 15:43:33 +0000 | [diff] [blame] | 215 | fuzzer_test("tint_vertex_pulling_fuzzer") { |
| 216 | sources = [ "tint_vertex_pulling_fuzzer.cc" ] |
| 217 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 218 | dict = "dictionary.txt" |
| 219 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 220 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Ryan Harrison | a0174e6 | 2021-05-06 15:43:33 +0000 | [diff] [blame] | 221 | } |
| 222 | |
Ryan Harrison | bc5461d | 2021-04-29 20:43:45 +0000 | [diff] [blame] | 223 | fuzzer_test("tint_wgsl_reader_spv_writer_fuzzer") { |
| 224 | sources = [ "tint_wgsl_reader_spv_writer_fuzzer.cc" ] |
| 225 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 226 | dict = "dictionary.txt" |
| 227 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 228 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Ryan Harrison | bc5461d | 2021-04-29 20:43:45 +0000 | [diff] [blame] | 229 | } |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 230 | } |
| 231 | |
| 232 | if (tint_build_wgsl_reader && tint_build_hlsl_writer) { |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 233 | fuzzer_test("tint_ast_hlsl_writer_fuzzer") { |
| 234 | sources = [] |
| 235 | deps = [ "tint_ast_fuzzer:tint_ast_fuzzer" ] |
| 236 | libfuzzer_options = tint_ast_fuzzer_common_libfuzzer_options + |
| 237 | [ "tint_fuzzing_target=hlsl" ] |
| 238 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 239 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
| 240 | } |
| 241 | |
Alastair Donaldson | 1f0200a | 2021-07-29 11:58:18 +0000 | [diff] [blame] | 242 | fuzzer_test("tint_regex_hlsl_writer_fuzzer") { |
| 243 | sources = [] |
| 244 | deps = [ "tint_regex_fuzzer:tint_regex_fuzzer" ] |
| 245 | libfuzzer_options = tint_regex_fuzzer_common_libfuzzer_options + |
| 246 | [ "tint_fuzzing_target=hlsl" ] |
| 247 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 248 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
| 249 | } |
| 250 | |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 251 | fuzzer_test("tint_wgsl_reader_hlsl_writer_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 252 | sources = [ "tint_wgsl_reader_hlsl_writer_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 253 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 254 | dict = "dictionary.txt" |
| 255 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 256 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 257 | } |
| 258 | } |
| 259 | |
| 260 | if (tint_build_wgsl_reader && tint_build_msl_writer) { |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 261 | fuzzer_test("tint_ast_msl_writer_fuzzer") { |
| 262 | sources = [] |
| 263 | deps = [ "tint_ast_fuzzer:tint_ast_fuzzer" ] |
| 264 | libfuzzer_options = tint_ast_fuzzer_common_libfuzzer_options + |
| 265 | [ "tint_fuzzing_target=msl" ] |
| 266 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 267 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
| 268 | } |
| 269 | |
Alastair Donaldson | 1f0200a | 2021-07-29 11:58:18 +0000 | [diff] [blame] | 270 | fuzzer_test("tint_regex_msl_writer_fuzzer") { |
| 271 | sources = [] |
| 272 | deps = [ "tint_regex_fuzzer:tint_regex_fuzzer" ] |
| 273 | libfuzzer_options = tint_regex_fuzzer_common_libfuzzer_options + |
| 274 | [ "tint_fuzzing_target=msl" ] |
| 275 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 276 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
| 277 | } |
| 278 | |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 279 | fuzzer_test("tint_wgsl_reader_msl_writer_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 280 | sources = [ "tint_wgsl_reader_msl_writer_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 281 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 282 | dict = "dictionary.txt" |
| 283 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 284 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 285 | } |
| 286 | } |
| 287 | |
| 288 | if (tint_build_spv_reader) { |
| 289 | fuzzer_test("tint_spv_reader_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 290 | sources = [ "tint_spv_reader_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 291 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | 9f4d94d | 2021-07-13 19:42:22 +0000 | [diff] [blame] | 292 | seed_corpus = fuzzer_corpus_spirv_dir |
| 293 | seed_corpus_deps = [ ":tint_generate_spirv_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 294 | } |
| 295 | } |
| 296 | |
| 297 | if (tint_build_spv_reader && tint_build_wgsl_writer) { |
| 298 | fuzzer_test("tint_spv_reader_wgsl_writer_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 299 | sources = [ "tint_spv_reader_wgsl_writer_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 300 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | 9f4d94d | 2021-07-13 19:42:22 +0000 | [diff] [blame] | 301 | seed_corpus = fuzzer_corpus_spirv_dir |
| 302 | seed_corpus_deps = [ ":tint_generate_spirv_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 303 | } |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 304 | fuzzer_test("tint_spirv_tools_wgsl_writer_fuzzer") { |
| 305 | sources = [] |
| 306 | deps = [ "tint_spirv_tools_fuzzer:tint_spirv_tools_fuzzer" ] |
| 307 | libfuzzer_options = tint_spirv_tools_fuzzer_common_libfuzzer_options + |
| 308 | [ "tint_fuzzing_target=wgsl" ] |
| 309 | seed_corpus = fuzzer_corpus_spirv_dir |
| 310 | seed_corpus_deps = [ ":tint_generate_spirv_corpus" ] |
| 311 | } |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 312 | } |
| 313 | |
| 314 | if (tint_build_spv_reader && tint_build_spv_writer) { |
| 315 | fuzzer_test("tint_spv_reader_spv_writer_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 316 | sources = [ "tint_spv_reader_spv_writer_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 317 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | 9f4d94d | 2021-07-13 19:42:22 +0000 | [diff] [blame] | 318 | seed_corpus = fuzzer_corpus_spirv_dir |
| 319 | seed_corpus_deps = [ ":tint_generate_spirv_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 320 | } |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 321 | fuzzer_test("tint_spirv_tools_spv_writer_fuzzer") { |
| 322 | sources = [] |
| 323 | deps = [ "tint_spirv_tools_fuzzer:tint_spirv_tools_fuzzer" ] |
| 324 | libfuzzer_options = tint_spirv_tools_fuzzer_common_libfuzzer_options + |
| 325 | [ "tint_fuzzing_target=spv" ] |
| 326 | seed_corpus = fuzzer_corpus_spirv_dir |
| 327 | seed_corpus_deps = [ ":tint_generate_spirv_corpus" ] |
| 328 | } |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 329 | } |
| 330 | |
| 331 | if (tint_build_spv_reader && tint_build_hlsl_writer) { |
| 332 | fuzzer_test("tint_spv_reader_hlsl_writer_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 333 | sources = [ "tint_spv_reader_hlsl_writer_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 334 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | 9f4d94d | 2021-07-13 19:42:22 +0000 | [diff] [blame] | 335 | seed_corpus = fuzzer_corpus_spirv_dir |
| 336 | seed_corpus_deps = [ ":tint_generate_spirv_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 337 | } |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 338 | fuzzer_test("tint_spirv_tools_hlsl_writer_fuzzer") { |
| 339 | sources = [] |
| 340 | deps = [ "tint_spirv_tools_fuzzer:tint_spirv_tools_fuzzer" ] |
| 341 | libfuzzer_options = tint_spirv_tools_fuzzer_common_libfuzzer_options + |
| 342 | [ "tint_fuzzing_target=hlsl" ] |
| 343 | seed_corpus = fuzzer_corpus_spirv_dir |
| 344 | seed_corpus_deps = [ ":tint_generate_spirv_corpus" ] |
| 345 | } |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 346 | } |
| 347 | |
| 348 | if (tint_build_spv_reader && tint_build_msl_writer) { |
| 349 | fuzzer_test("tint_spv_reader_msl_writer_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 350 | sources = [ "tint_spv_reader_msl_writer_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 351 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | 9f4d94d | 2021-07-13 19:42:22 +0000 | [diff] [blame] | 352 | seed_corpus = fuzzer_corpus_spirv_dir |
| 353 | seed_corpus_deps = [ ":tint_generate_spirv_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 354 | } |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 355 | fuzzer_test("tint_spirv_tools_msl_writer_fuzzer") { |
| 356 | sources = [] |
| 357 | deps = [ "tint_spirv_tools_fuzzer:tint_spirv_tools_fuzzer" ] |
| 358 | libfuzzer_options = tint_spirv_tools_fuzzer_common_libfuzzer_options + |
| 359 | [ "tint_fuzzing_target=msl" ] |
| 360 | seed_corpus = fuzzer_corpus_spirv_dir |
| 361 | seed_corpus_deps = [ ":tint_generate_spirv_corpus" ] |
| 362 | } |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 363 | } |
| 364 | |
| 365 | if (tint_build_wgsl_reader && tint_build_wgsl_writer) { |
| 366 | fuzzer_test("tint_ast_clone_fuzzer") { |
Corentin Wallez | c205c28 | 2021-03-15 15:09:11 +0000 | [diff] [blame] | 367 | sources = [ "tint_ast_clone_fuzzer.cc" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 368 | deps = [ ":tint_fuzzer_common" ] |
Alastair Donaldson | ff0a8f0 | 2021-07-13 17:11:35 +0000 | [diff] [blame] | 369 | dict = "dictionary.txt" |
| 370 | seed_corpus = fuzzer_corpus_wgsl_dir |
| 371 | seed_corpus_deps = [ ":tint_generate_wgsl_corpus" ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 372 | } |
| 373 | } |
| 374 | |
| 375 | group("fuzzers") { |
| 376 | testonly = true |
| 377 | deps = [] |
| 378 | |
| 379 | if (tint_build_wgsl_reader) { |
| 380 | deps += [ ":tint_wgsl_reader_fuzzer" ] |
| 381 | } |
| 382 | if (tint_build_wgsl_reader && tint_build_wgsl_writer) { |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 383 | deps += [ |
| 384 | ":tint_ast_wgsl_writer_fuzzer", |
Alastair Donaldson | 1f0200a | 2021-07-29 11:58:18 +0000 | [diff] [blame] | 385 | ":tint_regex_wgsl_writer_fuzzer", |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 386 | ":tint_wgsl_reader_wgsl_writer_fuzzer", |
| 387 | ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 388 | } |
| 389 | if (tint_build_wgsl_reader && tint_build_spv_writer) { |
| 390 | deps += [ |
| 391 | ":tint_all_transforms_fuzzer", |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 392 | ":tint_ast_spv_writer_fuzzer", |
Ryan Harrison | b5c908f | 2021-04-28 15:35:43 +0000 | [diff] [blame] | 393 | ":tint_binding_remapper_fuzzer", |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 394 | ":tint_first_index_offset_fuzzer", |
| 395 | ":tint_inspector_fuzzer", |
Alastair Donaldson | 1f0200a | 2021-07-29 11:58:18 +0000 | [diff] [blame] | 396 | ":tint_regex_spv_writer_fuzzer", |
Ryan Harrison | bc5461d | 2021-04-29 20:43:45 +0000 | [diff] [blame] | 397 | ":tint_renamer_fuzzer", |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 398 | ":tint_robustness_fuzzer", |
Ryan Harrison | 52456c6 | 2021-04-29 20:49:25 +0000 | [diff] [blame] | 399 | ":tint_single_entry_point_fuzzer", |
Ryan Harrison | a0174e6 | 2021-05-06 15:43:33 +0000 | [diff] [blame] | 400 | ":tint_vertex_pulling_fuzzer", |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 401 | ":tint_wgsl_reader_spv_writer_fuzzer", |
| 402 | ] |
| 403 | } |
| 404 | if (tint_build_wgsl_reader && tint_build_hlsl_writer) { |
Ryan Harrison | dcd6b4d | 2021-04-29 20:03:35 +0000 | [diff] [blame] | 405 | deps += [ |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 406 | ":tint_ast_hlsl_writer_fuzzer", |
Alastair Donaldson | 1f0200a | 2021-07-29 11:58:18 +0000 | [diff] [blame] | 407 | ":tint_regex_hlsl_writer_fuzzer", |
Ryan Harrison | dcd6b4d | 2021-04-29 20:03:35 +0000 | [diff] [blame] | 408 | ":tint_wgsl_reader_hlsl_writer_fuzzer", |
| 409 | ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 410 | } |
| 411 | if (tint_build_wgsl_reader && tint_build_msl_writer) { |
Ryan Harrison | b67d049 | 2021-04-29 20:06:25 +0000 | [diff] [blame] | 412 | deps += [ |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 413 | ":tint_ast_msl_writer_fuzzer", |
Alastair Donaldson | 1f0200a | 2021-07-29 11:58:18 +0000 | [diff] [blame] | 414 | ":tint_regex_msl_writer_fuzzer", |
Ryan Harrison | b67d049 | 2021-04-29 20:06:25 +0000 | [diff] [blame] | 415 | ":tint_wgsl_reader_msl_writer_fuzzer", |
| 416 | ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 417 | } |
| 418 | if (tint_build_spv_reader) { |
| 419 | deps += [ ":tint_spv_reader_fuzzer" ] |
| 420 | } |
| 421 | if (tint_build_spv_reader && tint_build_wgsl_writer) { |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 422 | deps += [ |
| 423 | ":tint_spirv_tools_wgsl_writer_fuzzer", |
| 424 | ":tint_spv_reader_wgsl_writer_fuzzer", |
| 425 | ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 426 | } |
| 427 | if (tint_build_spv_reader && tint_build_spv_writer) { |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 428 | deps += [ |
| 429 | ":tint_spirv_tools_spv_writer_fuzzer", |
| 430 | ":tint_spv_reader_spv_writer_fuzzer", |
| 431 | ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 432 | } |
| 433 | if (tint_build_spv_reader && tint_build_hlsl_writer) { |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 434 | deps += [ |
| 435 | ":tint_spirv_tools_hlsl_writer_fuzzer", |
| 436 | ":tint_spv_reader_hlsl_writer_fuzzer", |
| 437 | ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 438 | } |
| 439 | if (tint_build_spv_reader && tint_build_msl_writer) { |
Alastair Donaldson | 86dc887 | 2021-07-16 20:56:55 +0000 | [diff] [blame] | 440 | deps += [ |
| 441 | ":tint_spirv_tools_msl_writer_fuzzer", |
| 442 | ":tint_spv_reader_msl_writer_fuzzer", |
| 443 | ] |
Corentin Wallez | 5929a04 | 2021-03-15 08:43:11 +0000 | [diff] [blame] | 444 | } |
| 445 | if (tint_build_wgsl_reader && tint_build_wgsl_writer) { |
| 446 | deps += [ ":tint_ast_clone_fuzzer" ] |
| 447 | } |
| 448 | } |
| 449 | } else { |
| 450 | group("fuzzers") { |
| 451 | } |
| 452 | } |