tests: re: 79db394;

ref: ziglang/zig#1832
This commit is contained in:
kristopher tate 2018-12-20 22:49:09 +09:00
parent 39567e8b50
commit fb81b1978b
No known key found for this signature in database
GPG Key ID: AEE8EEAD03E20816
2 changed files with 53 additions and 0 deletions

View File

@ -398,3 +398,14 @@ test "std.ArrayList.insertSlice" {
assert(list.len == 6);
assert(list.items[0] == 1);
}
const Item = struct {
integer: i32,
sub_items: ArrayList(Item),
};
test "std.ArrayList: ArrayList(T) of struct T" {
var root = Item{ .integer = 1, .sub_items = ArrayList(Item).init(debug.global_allocator) };
try root.sub_items.append( Item{ .integer = 42, .sub_items = ArrayList(Item).init(debug.global_allocator) } );
assert(root.sub_items.items[0].integer == 42);
}

View File

@ -5,6 +5,11 @@ const Node = struct {
children: []Node,
};
const NodeAligned = struct {
payload: i32,
children: []align(@alignOf(NodeAligned)) NodeAligned,
};
test "struct contains slice of itself" {
var other_nodes = []Node{
Node{
@ -41,3 +46,40 @@ test "struct contains slice of itself" {
assert(root.children[2].children[0].payload == 31);
assert(root.children[2].children[1].payload == 32);
}
test "struct contains aligned slice of itself" {
var other_nodes = []NodeAligned{
NodeAligned{
.payload = 31,
.children = []NodeAligned{},
},
NodeAligned{
.payload = 32,
.children = []NodeAligned{},
},
};
var nodes = []NodeAligned{
NodeAligned{
.payload = 1,
.children = []NodeAligned{},
},
NodeAligned{
.payload = 2,
.children = []NodeAligned{},
},
NodeAligned{
.payload = 3,
.children = other_nodes[0..],
},
};
const root = NodeAligned{
.payload = 1234,
.children = nodes[0..],
};
assert(root.payload == 1234);
assert(root.children[0].payload == 1);
assert(root.children[1].payload == 2);
assert(root.children[2].payload == 3);
assert(root.children[2].children[0].payload == 31);
assert(root.children[2].children[1].payload == 32);
}