SPIRV-Tools/test/fuzzers/spvtools_opt_fuzzer_common.h
Alastair Donaldson c5ee1bc7bd
Fix opt fuzzer test harness (#4670)
The test harness for the opt fuzzer was failing to consider that the
input might use a very large id bound, despite no id approaching this
bound actually being used.

This change modifies the test harness to use the module's id bound,
rather than looking through the module for large ids.

Fixes: oss-fuzz:42386
2022-01-07 15:03:29 +00:00

36 lines
1.1 KiB
C++

// Copyright (c) 2021 Google LLC
//
// 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.
#ifndef TEST_FUZZERS_SPVTOOLS_OPT_FUZZER_COMMON_H_
#define TEST_FUZZERS_SPVTOOLS_OPT_FUZZER_COMMON_H_
#include <cinttypes>
#include <cstddef>
#include <functional>
#include "spirv-tools/optimizer.hpp"
namespace spvtools {
namespace fuzzers {
// Helper function capturing the common logic for the various optimizer fuzzers.
int OptFuzzerTestOneInput(
const uint8_t* data, size_t size,
const std::function<void(spvtools::Optimizer&)>& register_passes);
} // namespace fuzzers
} // namespace spvtools
#endif // TEST_FUZZERS_SPVTOOLS_OPT_FUZZER_COMMON_H_