| // WARNING: This file is machine generated by fidlgen. |
| |
| #pragma once |
| |
| #include <test/table/cpp/fidl.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 TableWithAttributes = ::test::table::TableWithAttributes; |
| using SimpleTable = ::test::table::SimpleTable; |
| using ReverseOrdinalTable = ::test::table::ReverseOrdinalTable; |
| using OlderSimpleTable = ::test::table::OlderSimpleTable; |
| using NewerSimpleTable = ::test::table::NewerSimpleTable; |
| using ExtensionTable = ::test::table::ExtensionTable; |
| using SixtyFourOrdinalTable = ::test::table::SixtyFourOrdinalTable; |
| using EmptyTable = ::test::table::EmptyTable; |
| |
| template <> |
| struct MinSize<TableWithAttributes> { |
| operator size_t() { |
| return MinSize<int64_t>(); |
| } |
| }; |
| template <> |
| struct Allocate<TableWithAttributes> { |
| TableWithAttributes operator()(FuzzInput* src, size_t* size) { |
| ZX_ASSERT(*size >= MinSize<TableWithAttributes>()); |
| TableWithAttributes out; |
| const size_t slack_per_member = (*size - MinSize<TableWithAttributes>()) / 1; |
| size_t out_size; |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_x(Allocate<int64_t>{}(src, &out_size)); |
| return out; |
| } |
| }; |
| template <> |
| struct MinSize<SimpleTable> { |
| operator size_t() { |
| return MinSize<int64_t>() + MinSize<int64_t>(); |
| } |
| }; |
| template <> |
| struct Allocate<SimpleTable> { |
| SimpleTable operator()(FuzzInput* src, size_t* size) { |
| ZX_ASSERT(*size >= MinSize<SimpleTable>()); |
| SimpleTable out; |
| const size_t slack_per_member = (*size - MinSize<SimpleTable>()) / 2; |
| size_t out_size; |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_x(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_y(Allocate<int64_t>{}(src, &out_size)); |
| return out; |
| } |
| }; |
| template <> |
| struct MinSize<ReverseOrdinalTable> { |
| operator size_t() { |
| return MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>(); |
| } |
| }; |
| template <> |
| struct Allocate<ReverseOrdinalTable> { |
| ReverseOrdinalTable operator()(FuzzInput* src, size_t* size) { |
| ZX_ASSERT(*size >= MinSize<ReverseOrdinalTable>()); |
| ReverseOrdinalTable out; |
| const size_t slack_per_member = (*size - MinSize<ReverseOrdinalTable>()) / 3; |
| size_t out_size; |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_z(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_y(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_x(Allocate<int64_t>{}(src, &out_size)); |
| return out; |
| } |
| }; |
| template <> |
| struct MinSize<OlderSimpleTable> { |
| operator size_t() { |
| return MinSize<int64_t>(); |
| } |
| }; |
| template <> |
| struct Allocate<OlderSimpleTable> { |
| OlderSimpleTable operator()(FuzzInput* src, size_t* size) { |
| ZX_ASSERT(*size >= MinSize<OlderSimpleTable>()); |
| OlderSimpleTable out; |
| const size_t slack_per_member = (*size - MinSize<OlderSimpleTable>()) / 1; |
| size_t out_size; |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_x(Allocate<int64_t>{}(src, &out_size)); |
| return out; |
| } |
| }; |
| template <> |
| struct MinSize<NewerSimpleTable> { |
| operator size_t() { |
| return MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>(); |
| } |
| }; |
| template <> |
| struct Allocate<NewerSimpleTable> { |
| NewerSimpleTable operator()(FuzzInput* src, size_t* size) { |
| ZX_ASSERT(*size >= MinSize<NewerSimpleTable>()); |
| NewerSimpleTable out; |
| const size_t slack_per_member = (*size - MinSize<NewerSimpleTable>()) / 3; |
| size_t out_size; |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_x(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_y(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_z(Allocate<int64_t>{}(src, &out_size)); |
| return out; |
| } |
| }; |
| template <> |
| struct MinSize<ExtensionTable> { |
| operator size_t() { |
| return 0; |
| } |
| }; |
| template <> |
| struct Allocate<ExtensionTable> { |
| ExtensionTable operator()(FuzzInput* src, size_t* size) { |
| ZX_ASSERT(*size >= MinSize<ExtensionTable>()); |
| ExtensionTable out; |
| return out; |
| } |
| }; |
| template <> |
| struct MinSize<SixtyFourOrdinalTable> { |
| operator size_t() { |
| return MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<int64_t>() + MinSize<::test::table::ExtensionTable>(); |
| } |
| }; |
| template <> |
| struct Allocate<SixtyFourOrdinalTable> { |
| SixtyFourOrdinalTable operator()(FuzzInput* src, size_t* size) { |
| ZX_ASSERT(*size >= MinSize<SixtyFourOrdinalTable>()); |
| SixtyFourOrdinalTable out; |
| const size_t slack_per_member = (*size - MinSize<SixtyFourOrdinalTable>()) / 64; |
| size_t out_size; |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v1(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v2(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v3(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v4(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v5(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v6(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v7(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v8(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v9(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v10(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v11(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v12(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v13(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v14(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v15(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v16(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v17(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v18(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v19(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v20(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v21(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v22(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v23(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v24(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v25(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v26(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v27(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v28(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v29(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v30(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v31(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v32(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v33(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v34(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v35(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v36(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v37(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v38(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v39(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v40(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v41(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v42(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v43(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v44(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v45(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v46(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v47(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v48(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v49(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v50(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v51(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v52(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v53(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v54(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v55(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v56(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v57(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v58(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v59(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v60(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v61(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v62(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<int64_t>() + slack_per_member; |
| out.set_v63(Allocate<int64_t>{}(src, &out_size)); |
| out_size = MinSize<::test::table::ExtensionTable>() + slack_per_member; |
| out.set_v64(Allocate<::test::table::ExtensionTable>{}(src, &out_size)); |
| return out; |
| } |
| }; |
| template <> |
| struct MinSize<EmptyTable> { |
| operator size_t() { |
| return 0; |
| } |
| }; |
| template <> |
| struct Allocate<EmptyTable> { |
| EmptyTable operator()(FuzzInput* src, size_t* size) { |
| ZX_ASSERT(*size >= MinSize<EmptyTable>()); |
| EmptyTable out; |
| return out; |
| } |
| }; |
| |
| } // namespace fuzzing |