blob: cfd0c48e1a06fc7ef76f869366f0fdb204fa5376 [file] [log] [blame]
// Copyright 2022 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("TwoLayerStructNoPaddingAlign4") {
value = TwoLayerStructNoPaddingAlign4{
s: OneLayerStructNoPaddingAlign4{
a: 1,
b: 2,
c: 3,
d: 4,
},
a: 5,
},
bytes = {
v2 = [
num(1):2,
num(2):1,
num(3):1,
num(4):4,
num(5):4,
padding:4,
],
},
}
success("TwoLayerStructInnerPaddingAlign4") {
value = TwoLayerStructInnerPaddingAlign4{
s: OneLayerStructWithPaddingAlign4{
a: 1,
b: 2,
c: 3,
},
a: 4,
},
bytes = {
v2 = [
num(1):2,
num(2):1,
padding:1,
num(3):4,
num(4):4,
padding:4,
],
},
}
decode_failure("TwoLayerStructInnerPaddingAlign4BadPadding") {
type = TwoLayerStructInnerPaddingAlign4,
bytes = {
v2 = [
num(1):2,
num(2):1,
num(100):1,
num(3):4,
num(4):4,
padding:4,
],
},
err = INVALID_PADDING_BYTE,
}
success("TwoLayerStructNoPaddingAlign8") {
value = TwoLayerStructNoPaddingAlign8{
s: OneLayerStructNoPaddingAlign8{
a: 1,
b: 2,
c: 3,
d: 4,
},
a: 5,
},
bytes = {
v2 = [
num(1):4,
num(2):2,
num(3):2,
num(4):8,
num(5):8,
],
},
}
success("TwoLayerStructInnerPaddingAlign8") {
value = TwoLayerStructInnerPaddingAlign8{
s: OneLayerStructWithPaddingAlign8{
a: 1,
b: 2,
c: 3,
},
a: 4,
},
bytes = {
v2 = [
num(1):4,
num(2):2,
padding:2,
num(3):8,
num(4):8,
],
},
}
decode_failure("TwoLayerStructInnerPaddingAlign8BadPadding") {
type = TwoLayerStructInnerPaddingAlign8,
bytes = {
v2 = [
num(1):4,
num(2):2,
num(100):2,
num(3):8,
num(4):8,
],
},
err = INVALID_PADDING_BYTE,
}
success("TwoLayerStructInnerBool") {
value = TwoLayerStructInnerBool{
s: OneLayerStructWithBool{
a: true,
b: 2,
c: 3,
d: 4,
},
a: 5,
},
bytes = {
v2 = [
num(1):1,
num(2):1,
num(3):2,
num(4):4,
num(5):8,
],
},
}
decode_failure("TwoLayerStructInnerBoolBadValue") {
type = TwoLayerStructInnerBool,
bytes = {
v2 = [
num(100):1,
num(2):1,
num(3):2,
num(4):4,
num(5):8,
],
},
err = INVALID_BOOLEAN,
}
success("CorrectArrayWithInternalPadding") {
value = ArrayWithInternalPadding{
v: [
OneLayerStructWithPaddingAlign4{
a: 1,
b: 2,
c: 3,
},
OneLayerStructWithPaddingAlign4{
a: 4,
b: 5,
c: 6,
},
],
},
bytes = {
v2 = [
num(1):2, num(2):1, padding:1, num(3):4,
num(4):2, num(5):1, padding:1, num(6):4,
],
},
}
decode_failure("BadPaddedArrayWithInternalPadding") {
type = ArrayWithInternalPadding,
bytes = {
v2 = [
// 0xee is the bad padding byte.
num(1):2, num(2):1, padding:1, num(3):4,
num(4):2, num(5):1, 0xee, num(6):4,
],
},
err = INVALID_PADDING_BYTE,
}