Add fuzzing for transform::SingleEntryPoint

BUG=tint:722

Change-Id: I83dfb2cb196f6e80ffb48dc41ff385621a5d629e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/49580
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
Ryan Harrison
2021-04-29 20:49:25 +00:00
committed by Commit Bot service account
parent bc5461d731
commit 52456c69c8
6 changed files with 81 additions and 0 deletions

View File

@@ -101,6 +101,33 @@ bool ExtractFirstIndexOffsetInputs(const uint8_t** data,
return true;
}
bool ExtractSingleEntryPointInputs(const uint8_t** data,
size_t* size,
tint::transform::DataMap* inputs) {
if ((*size) < sizeof(uint8_t)) {
return false;
}
auto count = *reinterpret_cast<const uint8_t*>(*data);
(*data) += sizeof(uint8_t);
(*size) -= sizeof(uint8_t);
if ((*size) < count) {
return false;
}
auto* c = reinterpret_cast<const char*>(*data);
std::string input(c, c + count);
(*data) += count * sizeof(char);
(*size) -= count * sizeof(char);
transform::SingleEntryPoint::Config cfg(input);
inputs->Add<transform::SingleEntryPoint::Config>(cfg);
return true;
}
CommonFuzzer::CommonFuzzer(InputFormat input, OutputFormat output)
: input_(input),
output_(output),