diff --git a/fuzzers/BUILD.gn b/fuzzers/BUILD.gn index 8c5e89b4b9..a4b78a7c2f 100644 --- a/fuzzers/BUILD.gn +++ b/fuzzers/BUILD.gn @@ -56,11 +56,6 @@ if (build_with_chromium) { } if (tint_build_wgsl_reader && tint_build_spv_writer) { - fuzzer_test("tint_wgsl_reader_spv_writer_fuzzer") { - sources = [ "tint_wgsl_reader_spv_writer_fuzzer.cc" ] - deps = [ ":tint_fuzzer_common" ] - } - fuzzer_test("tint_all_transforms_fuzzer") { sources = [ "tint_all_transforms_fuzzer.cc" ] deps = [ ":tint_fuzzer_common" ] @@ -92,10 +87,20 @@ if (build_with_chromium) { deps = [ ":tint_fuzzer_common" ] } + fuzzer_test("tint_renamer_fuzzer") { + sources = [ "tint_renamer_fuzzer.cc" ] + deps = [ ":tint_fuzzer_common" ] + } + fuzzer_test("tint_spirv_transform_fuzzer") { sources = [ "tint_spirv_transform_fuzzer.cc" ] deps = [ ":tint_fuzzer_common" ] } + + fuzzer_test("tint_wgsl_reader_spv_writer_fuzzer") { + sources = [ "tint_wgsl_reader_spv_writer_fuzzer.cc" ] + deps = [ ":tint_fuzzer_common" ] + } } if (tint_build_wgsl_reader && tint_build_hlsl_writer) { @@ -183,6 +188,7 @@ if (build_with_chromium) { # transform used by sanitizers ":tint_first_index_offset_fuzzer", ":tint_inspector_fuzzer", + ":tint_renamer_fuzzer", ":tint_spirv_transform_fuzzer", ":tint_wgsl_reader_spv_writer_fuzzer", ] diff --git a/fuzzers/CMakeLists.txt b/fuzzers/CMakeLists.txt index 1e65ca85c7..fb4fe83420 100644 --- a/fuzzers/CMakeLists.txt +++ b/fuzzers/CMakeLists.txt @@ -36,6 +36,7 @@ if (${TINT_BUILD_WGSL_READER} AND ${TINT_BUILD_SPV_WRITER}) add_tint_fuzzer(tint_emit_vertex_point_size_fuzzer) # TODO(tint:753): Remove once transform used by sanitizers add_tint_fuzzer(tint_first_index_offset_fuzzer) add_tint_fuzzer(tint_inspector_fuzzer) + add_tint_fuzzer(tint_renamer_fuzzer) add_tint_fuzzer(tint_spirv_transform_fuzzer) add_tint_fuzzer(tint_wgsl_reader_spv_writer_fuzzer) endif() diff --git a/fuzzers/tint_all_transforms_fuzzer.cc b/fuzzers/tint_all_transforms_fuzzer.cc index 08087773af..d9ff62482a 100644 --- a/fuzzers/tint_all_transforms_fuzzer.cc +++ b/fuzzers/tint_all_transforms_fuzzer.cc @@ -41,6 +41,7 @@ bool AddPlatformIndependentPasses(Config* config) { // transform used by sanitizers config->manager.Add(); config->manager.Add(); + config->manager.Add(); return true; } diff --git a/fuzzers/tint_renamer_fuzzer.cc b/fuzzers/tint_renamer_fuzzer.cc new file mode 100644 index 0000000000..1d90a2b299 --- /dev/null +++ b/fuzzers/tint_renamer_fuzzer.cc @@ -0,0 +1,31 @@ +// Copyright 2021 The Tint Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "fuzzers/tint_common_fuzzer.h" + +namespace tint { +namespace fuzzers { + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + transform::Manager transform_manager; + transform_manager.Add(); + + fuzzers::CommonFuzzer fuzzer(InputFormat::kWGSL, OutputFormat::kSpv); + fuzzer.SetTransformManager(&transform_manager, {}); + + return fuzzer.Run(data, size); +} + +} // namespace fuzzers +} // namespace tint