| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| success("RecursiveOptionalStructUnderLimit") { |
| // gidl-format off |
| value = RecursiveOptionalStruct { // 0 |
| inner: RecursiveOptionalStruct { // 1 |
| inner: RecursiveOptionalStruct { // 2 |
| inner: RecursiveOptionalStruct { // 3 |
| inner: RecursiveOptionalStruct { // 4 |
| inner: RecursiveOptionalStruct { // 5 |
| inner: RecursiveOptionalStruct { // 6 |
| inner: RecursiveOptionalStruct { // 7 |
| inner: RecursiveOptionalStruct { // 8 |
| inner: RecursiveOptionalStruct { // 9 |
| inner: RecursiveOptionalStruct { // 10 |
| inner: RecursiveOptionalStruct { // 11 |
| inner: RecursiveOptionalStruct { // 12 |
| inner: RecursiveOptionalStruct { // 13 |
| inner: RecursiveOptionalStruct { // 14 |
| inner: RecursiveOptionalStruct { // 15 |
| inner: RecursiveOptionalStruct { // 16 |
| inner: RecursiveOptionalStruct { // 17 |
| inner: RecursiveOptionalStruct { // 18 |
| inner: RecursiveOptionalStruct { // 19 |
| inner: RecursiveOptionalStruct { // 20 |
| inner: RecursiveOptionalStruct { // 21 |
| inner: RecursiveOptionalStruct { // 22 |
| inner: RecursiveOptionalStruct { // 23 |
| inner: RecursiveOptionalStruct { // 24 |
| inner: RecursiveOptionalStruct { // 25 |
| inner: RecursiveOptionalStruct { // 26 |
| inner: RecursiveOptionalStruct { // 27 |
| inner: RecursiveOptionalStruct { // 28 |
| inner: RecursiveOptionalStruct { // 29 |
| inner: RecursiveOptionalStruct { // 30 |
| inner: RecursiveOptionalStruct { // 31 |
| inner: RecursiveOptionalStruct { // 32 |
| inner: null, |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| // gidl-format on |
| bytes = { |
| v1, v2 = [ |
| repeat(0xff):256, // 0 - 31 |
| repeat(0x00):8, // 32 |
| ], |
| }, |
| } |
| |
| encode_failure("RecursiveOptionalStructExceedLimit") { |
| // gidl-format off |
| value = RecursiveOptionalStruct { // 0 |
| inner: RecursiveOptionalStruct { // 1 |
| inner: RecursiveOptionalStruct { // 2 |
| inner: RecursiveOptionalStruct { // 3 |
| inner: RecursiveOptionalStruct { // 4 |
| inner: RecursiveOptionalStruct { // 5 |
| inner: RecursiveOptionalStruct { // 6 |
| inner: RecursiveOptionalStruct { // 7 |
| inner: RecursiveOptionalStruct { // 8 |
| inner: RecursiveOptionalStruct { // 9 |
| inner: RecursiveOptionalStruct { // 10 |
| inner: RecursiveOptionalStruct { // 11 |
| inner: RecursiveOptionalStruct { // 12 |
| inner: RecursiveOptionalStruct { // 13 |
| inner: RecursiveOptionalStruct { // 14 |
| inner: RecursiveOptionalStruct { // 15 |
| inner: RecursiveOptionalStruct { // 16 |
| inner: RecursiveOptionalStruct { // 17 |
| inner: RecursiveOptionalStruct { // 18 |
| inner: RecursiveOptionalStruct { // 19 |
| inner: RecursiveOptionalStruct { // 20 |
| inner: RecursiveOptionalStruct { // 21 |
| inner: RecursiveOptionalStruct { // 22 |
| inner: RecursiveOptionalStruct { // 23 |
| inner: RecursiveOptionalStruct { // 24 |
| inner: RecursiveOptionalStruct { // 25 |
| inner: RecursiveOptionalStruct { // 26 |
| inner: RecursiveOptionalStruct { // 27 |
| inner: RecursiveOptionalStruct { // 28 |
| inner: RecursiveOptionalStruct { // 29 |
| inner: RecursiveOptionalStruct { // 30 |
| inner: RecursiveOptionalStruct { // 31 |
| inner: RecursiveOptionalStruct { // 32 |
| inner: RecursiveOptionalStruct { // 33 |
| inner: null, |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| // gidl-format on |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| decode_failure("RecursiveOptionalStructExceedLimit") { |
| type = RecursiveOptionalStruct, |
| bytes = { |
| v1, v2 = [ |
| repeat(0xff):264, // 0 - 32 |
| repeat(0x00):8, // 32 |
| ], |
| }, |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| success("RecursiveOptionalStructArrayWrapperUnderLimit") { |
| // gidl-format off |
| value = RecursiveOptionalStructArrayWrapper { // 0 |
| arr: [ // 0 |
| RecursiveOptionalStruct { // 0 |
| inner: RecursiveOptionalStruct { // 1 |
| inner: RecursiveOptionalStruct { // 2 |
| inner: RecursiveOptionalStruct { // 3 |
| inner: RecursiveOptionalStruct { // 4 |
| inner: RecursiveOptionalStruct { // 5 |
| inner: RecursiveOptionalStruct { // 6 |
| inner: RecursiveOptionalStruct { // 7 |
| inner: RecursiveOptionalStruct { // 8 |
| inner: RecursiveOptionalStruct { // 9 |
| inner: RecursiveOptionalStruct { // 10 |
| inner: RecursiveOptionalStruct { // 11 |
| inner: RecursiveOptionalStruct { // 12 |
| inner: RecursiveOptionalStruct { // 13 |
| inner: RecursiveOptionalStruct { // 14 |
| inner: RecursiveOptionalStruct { // 15 |
| inner: RecursiveOptionalStruct { // 16 |
| inner: RecursiveOptionalStruct { // 17 |
| inner: RecursiveOptionalStruct { // 18 |
| inner: RecursiveOptionalStruct { // 19 |
| inner: RecursiveOptionalStruct { // 20 |
| inner: RecursiveOptionalStruct { // 21 |
| inner: RecursiveOptionalStruct { // 22 |
| inner: RecursiveOptionalStruct { // 23 |
| inner: RecursiveOptionalStruct { // 24 |
| inner: RecursiveOptionalStruct { // 25 |
| inner: RecursiveOptionalStruct { // 26 |
| inner: RecursiveOptionalStruct { // 27 |
| inner: RecursiveOptionalStruct { // 28 |
| inner: RecursiveOptionalStruct { // 29 |
| inner: RecursiveOptionalStruct { // 30 |
| inner: RecursiveOptionalStruct { // 31 |
| inner: RecursiveOptionalStruct { // 32 |
| inner: null, |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| ] |
| }, |
| // gidl-format on |
| bytes = { |
| v1, v2 = [ |
| repeat(0xff):256, // 0 - 31 |
| repeat(0x00):8, // 32 |
| ], |
| }, |
| } |
| |
| encode_failure("RecursiveOptionalStructArrayWrapperExceedLimit") { |
| // gidl-format off |
| value = RecursiveOptionalStructArrayWrapper { // 0 |
| arr: [ // 0 |
| RecursiveOptionalStruct { // 0 |
| inner: RecursiveOptionalStruct { // 1 |
| inner: RecursiveOptionalStruct { // 2 |
| inner: RecursiveOptionalStruct { // 3 |
| inner: RecursiveOptionalStruct { // 4 |
| inner: RecursiveOptionalStruct { // 5 |
| inner: RecursiveOptionalStruct { // 6 |
| inner: RecursiveOptionalStruct { // 7 |
| inner: RecursiveOptionalStruct { // 8 |
| inner: RecursiveOptionalStruct { // 9 |
| inner: RecursiveOptionalStruct { // 10 |
| inner: RecursiveOptionalStruct { // 11 |
| inner: RecursiveOptionalStruct { // 12 |
| inner: RecursiveOptionalStruct { // 13 |
| inner: RecursiveOptionalStruct { // 14 |
| inner: RecursiveOptionalStruct { // 15 |
| inner: RecursiveOptionalStruct { // 16 |
| inner: RecursiveOptionalStruct { // 17 |
| inner: RecursiveOptionalStruct { // 18 |
| inner: RecursiveOptionalStruct { // 19 |
| inner: RecursiveOptionalStruct { // 20 |
| inner: RecursiveOptionalStruct { // 21 |
| inner: RecursiveOptionalStruct { // 22 |
| inner: RecursiveOptionalStruct { // 23 |
| inner: RecursiveOptionalStruct { // 24 |
| inner: RecursiveOptionalStruct { // 25 |
| inner: RecursiveOptionalStruct { // 26 |
| inner: RecursiveOptionalStruct { // 27 |
| inner: RecursiveOptionalStruct { // 28 |
| inner: RecursiveOptionalStruct { // 29 |
| inner: RecursiveOptionalStruct { // 30 |
| inner: RecursiveOptionalStruct { // 31 |
| inner: RecursiveOptionalStruct { // 32 |
| inner: RecursiveOptionalStruct { // 33 |
| inner: null, |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| ] |
| }, |
| // gidl-format on |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| decode_failure("RecursiveOptionalStructArrayWrapperExceedLimit") { |
| type = RecursiveOptionalStructArrayWrapper, |
| bytes = { |
| v1, v2 = [ |
| repeat(0xff):264, // 0 - 32 |
| repeat(0x00):8, // 32 |
| ], |
| }, |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| success("RecursiveOptionalAndUnionUnderLimit") { |
| // gidl-format off |
| value = RecursiveOptionalAndUnionStruct { // 0 |
| u: RecursiveOptionalAndUnion { // 0 |
| recursive_optional: RecursiveOptionalStruct { // 1 |
| inner: RecursiveOptionalStruct { // 2 |
| inner: RecursiveOptionalStruct { // 3 |
| inner: RecursiveOptionalStruct { // 4 |
| inner: RecursiveOptionalStruct { // 5 |
| inner: RecursiveOptionalStruct { // 6 |
| inner: RecursiveOptionalStruct { // 7 |
| inner: RecursiveOptionalStruct { // 8 |
| inner: RecursiveOptionalStruct { // 9 |
| inner: RecursiveOptionalStruct { // 10 |
| inner: RecursiveOptionalStruct { // 11 |
| inner: RecursiveOptionalStruct { // 12 |
| inner: RecursiveOptionalStruct { // 13 |
| inner: RecursiveOptionalStruct { // 14 |
| inner: RecursiveOptionalStruct { // 15 |
| inner: RecursiveOptionalStruct { // 16 |
| inner: RecursiveOptionalStruct { // 17 |
| inner: RecursiveOptionalStruct { // 18 |
| inner: RecursiveOptionalStruct { // 19 |
| inner: RecursiveOptionalStruct { // 20 |
| inner: RecursiveOptionalStruct { // 21 |
| inner: RecursiveOptionalStruct { // 22 |
| inner: RecursiveOptionalStruct { // 23 |
| inner: RecursiveOptionalStruct { // 24 |
| inner: RecursiveOptionalStruct { // 25 |
| inner: RecursiveOptionalStruct { // 26 |
| inner: RecursiveOptionalStruct { // 27 |
| inner: RecursiveOptionalStruct { // 28 |
| inner: RecursiveOptionalStruct { // 29 |
| inner: RecursiveOptionalStruct { // 30 |
| inner: RecursiveOptionalStruct { // 31 |
| inner: RecursiveOptionalStruct { // 32 |
| inner: null, |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| // gidl-format on |
| bytes = { |
| v1 = [ |
| num(1):4, padding:4, // ordinal, padding |
| num(256):4, num(0):4, // num bytes, num handles |
| repeat(0xff):8, // union data |
| repeat(0xff):248, // 1 - 31 |
| repeat(0x00):8, // 32 |
| ], |
| v2 = [ |
| num(1):4, padding:4, // ordinal, padding |
| num(256):4, num(0):2, num(0):2, // num bytes, num handles, inlined? |
| repeat(0xff):248, // 1 - 31 |
| repeat(0x00):8, // 32 |
| ], |
| }, |
| } |
| |
| encode_failure("RecursiveOptionalAndUnionExceedLimit") { |
| // gidl-format off |
| value = RecursiveOptionalAndUnionStruct { // 0 |
| u: RecursiveOptionalAndUnion { // 0 |
| recursive_optional: RecursiveOptionalStruct { // 1 |
| inner: RecursiveOptionalStruct { // 2 |
| inner: RecursiveOptionalStruct { // 3 |
| inner: RecursiveOptionalStruct { // 4 |
| inner: RecursiveOptionalStruct { // 5 |
| inner: RecursiveOptionalStruct { // 6 |
| inner: RecursiveOptionalStruct { // 7 |
| inner: RecursiveOptionalStruct { // 8 |
| inner: RecursiveOptionalStruct { // 9 |
| inner: RecursiveOptionalStruct { // 10 |
| inner: RecursiveOptionalStruct { // 11 |
| inner: RecursiveOptionalStruct { // 12 |
| inner: RecursiveOptionalStruct { // 13 |
| inner: RecursiveOptionalStruct { // 14 |
| inner: RecursiveOptionalStruct { // 15 |
| inner: RecursiveOptionalStruct { // 16 |
| inner: RecursiveOptionalStruct { // 17 |
| inner: RecursiveOptionalStruct { // 18 |
| inner: RecursiveOptionalStruct { // 19 |
| inner: RecursiveOptionalStruct { // 20 |
| inner: RecursiveOptionalStruct { // 21 |
| inner: RecursiveOptionalStruct { // 22 |
| inner: RecursiveOptionalStruct { // 23 |
| inner: RecursiveOptionalStruct { // 24 |
| inner: RecursiveOptionalStruct { // 25 |
| inner: RecursiveOptionalStruct { // 26 |
| inner: RecursiveOptionalStruct { // 27 |
| inner: RecursiveOptionalStruct { // 28 |
| inner: RecursiveOptionalStruct { // 29 |
| inner: RecursiveOptionalStruct { // 30 |
| inner: RecursiveOptionalStruct { // 31 |
| inner: RecursiveOptionalStruct { // 32 |
| inner: RecursiveOptionalStruct { // 33 |
| inner: null, |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| // gidl-format on |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| decode_failure("RecursiveOptionalAndUnionExceedLimit") { |
| type = RecursiveOptionalAndUnionStruct, |
| bytes = { |
| v1 = [ |
| num(1):4, padding:4, // ordinal, padding |
| num(264):4, num(0):4, // num bytes, num handles |
| repeat(0xff):8, // union data |
| repeat(0xff):256, // 1 - 32 |
| repeat(0x00):8, // 33 |
| ], |
| v2 = [ |
| num(1):4, padding:4, // ordinal, padding |
| num(264):4, num(0):2, num(0):2, // num bytes, num handles, inlined? |
| repeat(0xff):256, // 1 - 32 |
| repeat(0x00):8, // 33 |
| ], |
| }, |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| success("RecursiveOptionalAndTableUnderLimit") { |
| // gidl-format off |
| value = RecursiveOptionalAndTableStruct { // 0 |
| t: RecursiveOptionalAndTable { // 0 |
| recursive_optional: RecursiveOptionalStruct { // 2 |
| inner: RecursiveOptionalStruct { // 3 |
| inner: RecursiveOptionalStruct { // 4 |
| inner: RecursiveOptionalStruct { // 5 |
| inner: RecursiveOptionalStruct { // 6 |
| inner: RecursiveOptionalStruct { // 7 |
| inner: RecursiveOptionalStruct { // 8 |
| inner: RecursiveOptionalStruct { // 9 |
| inner: RecursiveOptionalStruct { // 10 |
| inner: RecursiveOptionalStruct { // 11 |
| inner: RecursiveOptionalStruct { // 12 |
| inner: RecursiveOptionalStruct { // 13 |
| inner: RecursiveOptionalStruct { // 14 |
| inner: RecursiveOptionalStruct { // 15 |
| inner: RecursiveOptionalStruct { // 16 |
| inner: RecursiveOptionalStruct { // 17 |
| inner: RecursiveOptionalStruct { // 18 |
| inner: RecursiveOptionalStruct { // 19 |
| inner: RecursiveOptionalStruct { // 20 |
| inner: RecursiveOptionalStruct { // 21 |
| inner: RecursiveOptionalStruct { // 22 |
| inner: RecursiveOptionalStruct { // 23 |
| inner: RecursiveOptionalStruct { // 24 |
| inner: RecursiveOptionalStruct { // 25 |
| inner: RecursiveOptionalStruct { // 26 |
| inner: RecursiveOptionalStruct { // 27 |
| inner: RecursiveOptionalStruct { // 28 |
| inner: RecursiveOptionalStruct { // 29 |
| inner: RecursiveOptionalStruct { // 30 |
| inner: RecursiveOptionalStruct { // 31 |
| inner: RecursiveOptionalStruct { // 32 |
| inner: null, |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| // gidl-format on |
| bytes = { |
| v1 = [ |
| num(1):8, // table max ordinal |
| repeat(0xff):8, // table vector body |
| num(248):4, num(0):4, // num bytes, num handles |
| repeat(0xff):8, // envelope data |
| repeat(0xff):240, // 2 - 31 |
| repeat(0x00):8, // 32 |
| ], |
| v2 = [ |
| num(1):8, // table max ordinal |
| repeat(0xff):8, // table vector body |
| num(248):4, num(0):4, // num bytes, num handles |
| repeat(0xff):240, // 2 - 31 |
| repeat(0x00):8, // 32 |
| ], |
| }, |
| } |
| |
| encode_failure("RecursiveOptionalAndTableExceedLimit") { |
| // gidl-format off |
| value = RecursiveOptionalAndTableStruct { // 0 |
| t: RecursiveOptionalAndTable { // 0 |
| recursive_optional: RecursiveOptionalStruct { // 2 |
| inner: RecursiveOptionalStruct { // 3 |
| inner: RecursiveOptionalStruct { // 4 |
| inner: RecursiveOptionalStruct { // 5 |
| inner: RecursiveOptionalStruct { // 6 |
| inner: RecursiveOptionalStruct { // 7 |
| inner: RecursiveOptionalStruct { // 8 |
| inner: RecursiveOptionalStruct { // 9 |
| inner: RecursiveOptionalStruct { // 10 |
| inner: RecursiveOptionalStruct { // 11 |
| inner: RecursiveOptionalStruct { // 12 |
| inner: RecursiveOptionalStruct { // 13 |
| inner: RecursiveOptionalStruct { // 14 |
| inner: RecursiveOptionalStruct { // 15 |
| inner: RecursiveOptionalStruct { // 16 |
| inner: RecursiveOptionalStruct { // 17 |
| inner: RecursiveOptionalStruct { // 18 |
| inner: RecursiveOptionalStruct { // 19 |
| inner: RecursiveOptionalStruct { // 20 |
| inner: RecursiveOptionalStruct { // 21 |
| inner: RecursiveOptionalStruct { // 22 |
| inner: RecursiveOptionalStruct { // 23 |
| inner: RecursiveOptionalStruct { // 24 |
| inner: RecursiveOptionalStruct { // 25 |
| inner: RecursiveOptionalStruct { // 26 |
| inner: RecursiveOptionalStruct { // 27 |
| inner: RecursiveOptionalStruct { // 28 |
| inner: RecursiveOptionalStruct { // 29 |
| inner: RecursiveOptionalStruct { // 30 |
| inner: RecursiveOptionalStruct { // 31 |
| inner: RecursiveOptionalStruct { // 32 |
| inner: RecursiveOptionalStruct { // 33 |
| inner: null, |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| // gidl-format on |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| decode_failure("RecursiveOptionalAndTableExceedLimit") { |
| type = RecursiveOptionalAndTableStruct, |
| bytes = { |
| v1 = [ |
| num(1):8, // table max ordinal |
| repeat(0xff):8, // table vector body |
| num(256):4, num(0):4, // num bytes, num handles |
| repeat(0xff):8, // envelope data |
| repeat(0xff):248, // 2 - 32 |
| repeat(0x00):8, // 33 |
| ], |
| }, |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| success("RecursiveOptionalAndVectorUnderLimit") { |
| // gidl-format off |
| value = RecursiveOptionalAndVectorStruct { // 0 |
| vec: [ RecursiveOptionalStruct { // 1 |
| inner: RecursiveOptionalStruct { // 2 |
| inner: RecursiveOptionalStruct { // 3 |
| inner: RecursiveOptionalStruct { // 4 |
| inner: RecursiveOptionalStruct { // 5 |
| inner: RecursiveOptionalStruct { // 6 |
| inner: RecursiveOptionalStruct { // 7 |
| inner: RecursiveOptionalStruct { // 8 |
| inner: RecursiveOptionalStruct { // 9 |
| inner: RecursiveOptionalStruct { // 10 |
| inner: RecursiveOptionalStruct { // 11 |
| inner: RecursiveOptionalStruct { // 12 |
| inner: RecursiveOptionalStruct { // 13 |
| inner: RecursiveOptionalStruct { // 14 |
| inner: RecursiveOptionalStruct { // 15 |
| inner: RecursiveOptionalStruct { // 16 |
| inner: RecursiveOptionalStruct { // 17 |
| inner: RecursiveOptionalStruct { // 18 |
| inner: RecursiveOptionalStruct { // 19 |
| inner: RecursiveOptionalStruct { // 20 |
| inner: RecursiveOptionalStruct { // 21 |
| inner: RecursiveOptionalStruct { // 22 |
| inner: RecursiveOptionalStruct { // 23 |
| inner: RecursiveOptionalStruct { // 24 |
| inner: RecursiveOptionalStruct { // 25 |
| inner: RecursiveOptionalStruct { // 26 |
| inner: RecursiveOptionalStruct { // 27 |
| inner: RecursiveOptionalStruct { // 28 |
| inner: RecursiveOptionalStruct { // 29 |
| inner: RecursiveOptionalStruct { // 30 |
| inner: RecursiveOptionalStruct { // 31 |
| inner: RecursiveOptionalStruct { // 32 |
| inner: null, |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| ] |
| }, |
| // gidl-format on |
| bytes = { |
| v1, v2 = [ |
| num(1):8, // vector count |
| repeat(0xff):8, // vector data |
| repeat(0xff):248, // 1 - 31 |
| repeat(0x00):8, // 32 |
| ], |
| }, |
| } |
| |
| encode_failure("RecursiveOptionalAndVectorExceedLimit") { |
| // gidl-format off |
| value = RecursiveOptionalAndVectorStruct { // 0 |
| vec: [ RecursiveOptionalStruct { // 1 |
| inner: RecursiveOptionalStruct { // 2 |
| inner: RecursiveOptionalStruct { // 3 |
| inner: RecursiveOptionalStruct { // 4 |
| inner: RecursiveOptionalStruct { // 5 |
| inner: RecursiveOptionalStruct { // 6 |
| inner: RecursiveOptionalStruct { // 7 |
| inner: RecursiveOptionalStruct { // 8 |
| inner: RecursiveOptionalStruct { // 9 |
| inner: RecursiveOptionalStruct { // 10 |
| inner: RecursiveOptionalStruct { // 11 |
| inner: RecursiveOptionalStruct { // 12 |
| inner: RecursiveOptionalStruct { // 13 |
| inner: RecursiveOptionalStruct { // 14 |
| inner: RecursiveOptionalStruct { // 15 |
| inner: RecursiveOptionalStruct { // 16 |
| inner: RecursiveOptionalStruct { // 17 |
| inner: RecursiveOptionalStruct { // 18 |
| inner: RecursiveOptionalStruct { // 19 |
| inner: RecursiveOptionalStruct { // 20 |
| inner: RecursiveOptionalStruct { // 21 |
| inner: RecursiveOptionalStruct { // 22 |
| inner: RecursiveOptionalStruct { // 23 |
| inner: RecursiveOptionalStruct { // 24 |
| inner: RecursiveOptionalStruct { // 25 |
| inner: RecursiveOptionalStruct { // 26 |
| inner: RecursiveOptionalStruct { // 27 |
| inner: RecursiveOptionalStruct { // 28 |
| inner: RecursiveOptionalStruct { // 29 |
| inner: RecursiveOptionalStruct { // 30 |
| inner: RecursiveOptionalStruct { // 31 |
| inner: RecursiveOptionalStruct { // 32 |
| inner: RecursiveOptionalStruct { // 33 |
| inner: null, |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| ] |
| }, |
| // gidl-format on |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| decode_failure("RecursiveOptionalAndVectorExceedLimit") { |
| type = RecursiveOptionalAndVectorStruct, |
| bytes = { |
| v1, v2 = [ |
| num(1):8, // vector count |
| repeat(0xff):8, // vector data |
| repeat(0xff):256, // 1 - 32 |
| repeat(0x00):8, // 33 |
| ], |
| }, |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| success("RecursiveOptionalStructWithStringUnderLimit") { |
| // gidl-format off |
| value = RecursiveOptionalStructWithString { // 0 |
| inner: RecursiveOptionalStructWithString { // 1 |
| inner: RecursiveOptionalStructWithString { // 2 |
| inner: RecursiveOptionalStructWithString { // 3 |
| inner: RecursiveOptionalStructWithString { // 4 |
| inner: RecursiveOptionalStructWithString { // 5 |
| inner: RecursiveOptionalStructWithString { // 6 |
| inner: RecursiveOptionalStructWithString { // 7 |
| inner: RecursiveOptionalStructWithString { // 8 |
| inner: RecursiveOptionalStructWithString { // 9 |
| inner: RecursiveOptionalStructWithString { // 10 |
| inner: RecursiveOptionalStructWithString { // 11 |
| inner: RecursiveOptionalStructWithString { // 12 |
| inner: RecursiveOptionalStructWithString { // 13 |
| inner: RecursiveOptionalStructWithString { // 14 |
| inner: RecursiveOptionalStructWithString { // 15 |
| inner: RecursiveOptionalStructWithString { // 16 |
| inner: RecursiveOptionalStructWithString { // 17 |
| inner: RecursiveOptionalStructWithString { // 18 |
| inner: RecursiveOptionalStructWithString { // 19 |
| inner: RecursiveOptionalStructWithString { // 20 |
| inner: RecursiveOptionalStructWithString { // 21 |
| inner: RecursiveOptionalStructWithString { // 22 |
| inner: RecursiveOptionalStructWithString { // 23 |
| inner: RecursiveOptionalStructWithString { // 24 |
| inner: RecursiveOptionalStructWithString { // 25 |
| inner: RecursiveOptionalStructWithString { // 26 |
| inner: RecursiveOptionalStructWithString { // 27 |
| inner: RecursiveOptionalStructWithString { // 28 |
| inner: RecursiveOptionalStructWithString { // 29 |
| inner: RecursiveOptionalStructWithString { // 30 |
| inner: RecursiveOptionalStructWithString { // 31 |
| str: "X" // 32 |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| // gidl-format on |
| bytes = { |
| v1, v2 = [ |
| // 0 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 1 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 2 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 3 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 4 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 5 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 6 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 7 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 8 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 9 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 10 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 11 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 12 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 13 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 14 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 15 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 16 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 17 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 18 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 19 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 20 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 21 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 22 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 23 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 24 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 25 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 26 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 27 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 28 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 29 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 30 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 31 |
| repeat(0x00):8, // inner, |
| num(1):8, // string count |
| repeat(0xff):8, // string body |
| // 32 |
| 'X', padding:7, |
| ], |
| }, |
| } |
| |
| encode_failure("RecursiveOptionalStructWithStringExceedLimit") { |
| // gidl-format off |
| value = RecursiveOptionalStructWithString { // 0 |
| inner: RecursiveOptionalStructWithString { // 1 |
| inner: RecursiveOptionalStructWithString { // 2 |
| inner: RecursiveOptionalStructWithString { // 3 |
| inner: RecursiveOptionalStructWithString { // 4 |
| inner: RecursiveOptionalStructWithString { // 5 |
| inner: RecursiveOptionalStructWithString { // 6 |
| inner: RecursiveOptionalStructWithString { // 7 |
| inner: RecursiveOptionalStructWithString { // 8 |
| inner: RecursiveOptionalStructWithString { // 9 |
| inner: RecursiveOptionalStructWithString { // 10 |
| inner: RecursiveOptionalStructWithString { // 11 |
| inner: RecursiveOptionalStructWithString { // 12 |
| inner: RecursiveOptionalStructWithString { // 13 |
| inner: RecursiveOptionalStructWithString { // 14 |
| inner: RecursiveOptionalStructWithString { // 15 |
| inner: RecursiveOptionalStructWithString { // 16 |
| inner: RecursiveOptionalStructWithString { // 17 |
| inner: RecursiveOptionalStructWithString { // 18 |
| inner: RecursiveOptionalStructWithString { // 19 |
| inner: RecursiveOptionalStructWithString { // 20 |
| inner: RecursiveOptionalStructWithString { // 21 |
| inner: RecursiveOptionalStructWithString { // 22 |
| inner: RecursiveOptionalStructWithString { // 23 |
| inner: RecursiveOptionalStructWithString { // 24 |
| inner: RecursiveOptionalStructWithString { // 25 |
| inner: RecursiveOptionalStructWithString { // 26 |
| inner: RecursiveOptionalStructWithString { // 27 |
| inner: RecursiveOptionalStructWithString { // 28 |
| inner: RecursiveOptionalStructWithString { // 29 |
| inner: RecursiveOptionalStructWithString { // 30 |
| inner: RecursiveOptionalStructWithString { // 31 |
| inner: RecursiveOptionalStructWithString { // 32 |
| str: "X" // 33 |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| // gidl-format on |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |
| |
| decode_failure("RecursiveOptionalStructWithStringExceedLimit") { |
| type = RecursiveOptionalStructWithString, |
| bytes = { |
| v1, v2 = [ |
| // 0 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 1 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 2 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 3 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 4 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 5 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 6 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 7 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 8 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 9 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 10 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 11 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 12 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 13 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 14 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 15 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 16 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 17 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 18 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 19 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 20 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 21 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 22 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 23 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 24 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 25 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 26 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 27 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 28 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 29 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 30 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 31 |
| repeat(0xff):8, // inner, |
| num(0):8, // string count |
| repeat(0x00):8, // string body |
| // 32 |
| repeat(0x00):8, // inner, |
| num(1):8, // string count |
| repeat(0xff):8, // string body |
| // 33 |
| 'X', padding:7, |
| ], |
| }, |
| err = EXCEEDED_MAX_OUT_OF_LINE_DEPTH, |
| } |