blob: a62442b16ee46ba62a2e4b0fafa4c6c4682ed8de [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#pragma once
#include <test/errorsyntax/cpp/fidl.h>
#include <test/errorsyntax/parent/cpp/libfuzzer.h>
#include "lib/fidl/cpp/fuzzing/traits.h"
#include "lib/fidl/cpp/internal/header.h"
// For ::std::max_element().
#include <algorithm>
// For uint64_t.
#include <stdint.h>
namespace fuzzing {
using ExampleUseOfErrorSyntax_CallWhichMayFail_Response = ::test::errorsyntax::ExampleUseOfErrorSyntax_CallWhichMayFail_Response;
using ExampleUseOfErrorSyntax_CallWhichMayFail_Result = ::test::errorsyntax::ExampleUseOfErrorSyntax_CallWhichMayFail_Result;
using ExampleUseOfErrorSyntaxCallWhichMayFailTopResponse = ::test::errorsyntax::ExampleUseOfErrorSyntaxCallWhichMayFailTopResponse;
using ExampleUseOfErrorSyntaxCallWhichMayFailRequest = ::test::errorsyntax::ExampleUseOfErrorSyntaxCallWhichMayFailRequest;
template <>
struct MinSize<ExampleUseOfErrorSyntax_CallWhichMayFail_Response> {
operator size_t() {
return MinSize<int64_t>();
}
};
template <>
struct Allocate<ExampleUseOfErrorSyntax_CallWhichMayFail_Response> {
ExampleUseOfErrorSyntax_CallWhichMayFail_Response operator()(FuzzInput* src, size_t* size) {
ZX_ASSERT(*size >= MinSize<ExampleUseOfErrorSyntax_CallWhichMayFail_Response>());
ExampleUseOfErrorSyntax_CallWhichMayFail_Response out;
const size_t slack_per_member = (*size - MinSize<ExampleUseOfErrorSyntax_CallWhichMayFail_Response>()) / 1;
size_t out_size;
out_size = MinSize<int64_t>() + slack_per_member;
out.value = Allocate<int64_t>{}(src, &out_size);
return out;
}
};
template <>
struct MinSize<ExampleUseOfErrorSyntax_CallWhichMayFail_Result> {
operator size_t() {
size_t sizes[] = {0, MinSize<::test::errorsyntax::ExampleUseOfErrorSyntax_CallWhichMayFail_Response>(), MinSize<uint32_t>()};
return 1 + *std::max_element(sizes, sizes + 2 + 1);
}
};
template <>
struct Allocate<ExampleUseOfErrorSyntax_CallWhichMayFail_Result> {
static_assert(2 > 0, "xunion must have at least one member");
ExampleUseOfErrorSyntax_CallWhichMayFail_Result operator()(FuzzInput* src, size_t* size) {
ZX_ASSERT(*size >= MinSize<ExampleUseOfErrorSyntax_CallWhichMayFail_Result>());
uint8_t selector;
ZX_ASSERT(src->CopyBytes(&selector, 1));
(*size)++;
ExampleUseOfErrorSyntax_CallWhichMayFail_Result out;
switch (selector % 2) {
case 0: {
out.set_response(Allocate<::test::errorsyntax::ExampleUseOfErrorSyntax_CallWhichMayFail_Response>{}(src, size));
break;
}
case 1: {
out.set_err(Allocate<uint32_t>{}(src, size));
break;
}
}
return out;
}
};
template <>
struct MinSize<ExampleUseOfErrorSyntaxCallWhichMayFailTopResponse> {
operator size_t() {
return MinSize<::test::errorsyntax::ExampleUseOfErrorSyntax_CallWhichMayFail_Result>();
}
};
template <>
struct Allocate<ExampleUseOfErrorSyntaxCallWhichMayFailTopResponse> {
ExampleUseOfErrorSyntaxCallWhichMayFailTopResponse operator()(FuzzInput* src, size_t* size) {
ZX_ASSERT(*size >= MinSize<ExampleUseOfErrorSyntaxCallWhichMayFailTopResponse>());
ExampleUseOfErrorSyntaxCallWhichMayFailTopResponse out;
const size_t slack_per_member = (*size - MinSize<ExampleUseOfErrorSyntaxCallWhichMayFailTopResponse>()) / 1;
size_t out_size;
out_size = MinSize<::test::errorsyntax::ExampleUseOfErrorSyntax_CallWhichMayFail_Result>() + slack_per_member;
out.result = Allocate<::test::errorsyntax::ExampleUseOfErrorSyntax_CallWhichMayFail_Result>{}(src, &out_size);
return out;
}
};
template <>
struct MinSize<ExampleUseOfErrorSyntaxCallWhichMayFailRequest> {
operator size_t() {
return MinSize<::std::string>();
}
};
template <>
struct Allocate<ExampleUseOfErrorSyntaxCallWhichMayFailRequest> {
ExampleUseOfErrorSyntaxCallWhichMayFailRequest operator()(FuzzInput* src, size_t* size) {
ZX_ASSERT(*size >= MinSize<ExampleUseOfErrorSyntaxCallWhichMayFailRequest>());
ExampleUseOfErrorSyntaxCallWhichMayFailRequest out;
const size_t slack_per_member = (*size - MinSize<ExampleUseOfErrorSyntaxCallWhichMayFailRequest>()) / 1;
size_t out_size;
out_size = MinSize<::std::string>() + slack_per_member;
out.s = Allocate<::std::string>{}(src, &out_size);
return out;
}
};
} // namespace fuzzing