blob: 83cf6c74bdf1daaea159733aaa2e66995b216919 [file] [log] [blame]
// Copyright 2019 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("UnionWithBoundString") {
value = UnionWithBoundStringStruct {
v: UnionWithBoundString {
boundFiveStr: "abcd",
},
},
bytes = {
old = [
tag 8:num(0),
size 8:num(4),
ptr 8:raw(0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff),
data 4:raw('a', 'b', 'c', 'd',), 4:padding,
],
v1 = [
ordinal 8:num(1), num_bytes 4:num(24), num_handles 4:num(0),
present 8:raw(0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff),
size 8:num(4),
ptr 8:raw(0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff),
data 4:raw('a', 'b', 'c', 'd',), 4:padding,
],
},
}
encode_failure("UnionWithBoundString_ExceedsBounds") {
// TODO(fxb/37304) Enforce size bounds in rust
bindings_denylist = [rust],
value = UnionWithBoundStringStruct {
v: UnionWithBoundString {
boundFiveStr: "abcdef",
},
},
err = STRING_TOO_LONG,
}
success("UnionMigration_SingleVariant") {
value = SingleVariantUnionStruct {
u: SingleVariantUnion {
x: 42,
},
},
bytes = {
old = [
tag 4:num(0), x 4:num(42)
],
v1 = [
// primary object
// TOOD(fxb/39578) Change ordinal to 8:num(1) and remove padding.
ordinal 4:num(1), 4:padding,
num_bytes 4:num(8), num_handles 4:num(0),
present 8:raw(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
// secondary object 1
x 4:num(42), 4:padding,
],
},
}
success("ReverseOrdinalUnion") {
value = ReverseOrdinalUnionStruct {
u: ReverseOrdinalUnion {
x: 42,
},
},
bytes = {
old = [
tag 4:num(2), 4:padding, x 8:num(42),
],
v1 = [
ordinal 8:num(4),
num_bytes 4:num(8), num_handles 4:num(0),
present 8:raw(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF),
x 8:num(42),
],
},
}