test packed users iterator
This commit is contained in:
parent
2c4e61d0ed
commit
6bf3e10eed
|
@ -377,7 +377,7 @@ Section creation order:
|
|||
1. ✅ userGids. No dependencies.
|
||||
1. ✅ Users. Requires `userGids` and shell.
|
||||
1. ✅ Groupmembers. Requires Users.
|
||||
1. Groups. Requires Groupmembers.
|
||||
1. ✅ Groups. Requires Groupmembers.
|
||||
1. `idx_*`. Requires offsets to Groups and Users.
|
||||
1. Header.
|
||||
|
||||
|
|
|
@ -563,7 +563,7 @@ test "test corpus" {
|
|||
try testing.expectEqual(groupsOfVidmantas[2], g_all);
|
||||
}
|
||||
|
||||
test "test groups and group members" {
|
||||
test "test groups, group members and users" {
|
||||
const allocator = testing.allocator;
|
||||
var corpus = try testCorpus(allocator);
|
||||
defer corpus.deinit();
|
||||
|
@ -572,12 +572,12 @@ test "test groups and group members" {
|
|||
defer sections.deinit();
|
||||
|
||||
const blob = sections.group_members.blob;
|
||||
var group_idx: usize = 0;
|
||||
while (group_idx < corpus.groups.len) : (group_idx += 1) {
|
||||
const offset = sections.group_members.idx2offset[group_idx];
|
||||
var i: usize = 0;
|
||||
while (i < corpus.groups.len) : (i += 1) {
|
||||
const offset = sections.group_members.idx2offset[i];
|
||||
var vit = try compress.VarintSliceIterator(blob[offset..]);
|
||||
var it = compress.DeltaDecompressionIterator(&vit);
|
||||
for (corpus.group2users[group_idx]) |user_idx| {
|
||||
for (corpus.group2users[i]) |user_idx| {
|
||||
const got_user_offset = (try it.next()).?;
|
||||
const want_user_offset = sections.users.idx2offset[user_idx];
|
||||
try testing.expectEqual(got_user_offset, want_user_offset);
|
||||
|
@ -589,7 +589,16 @@ test "test groups and group members" {
|
|||
sections.users.blob,
|
||||
sections.shell_reader,
|
||||
);
|
||||
_ = it;
|
||||
i = 0;
|
||||
while (i < corpus.users.len) : (i += 1) {
|
||||
const user = (try it.next()).?;
|
||||
try testing.expectEqual(corpus.users[i].uid, user.uid());
|
||||
try testing.expectEqual(corpus.users[i].gid, user.gid());
|
||||
try testing.expectEqualStrings(corpus.users[i].name, user.name());
|
||||
try testing.expectEqualStrings(corpus.users[i].gecos, user.gecos());
|
||||
try testing.expectEqualStrings(corpus.users[i].home, user.home());
|
||||
try testing.expectEqualStrings(corpus.users[i].shell, user.shell(sections.shell_reader));
|
||||
}
|
||||
}
|
||||
|
||||
test "userGids" {
|
||||
|
|
|
@ -338,9 +338,10 @@ test "construct PackedUser section" {
|
|||
.shell = "/",
|
||||
} };
|
||||
var shellIndex = testShellIndex(testing.allocator);
|
||||
const additional_gids = math.maxInt(u64);
|
||||
defer shellIndex.deinit();
|
||||
for (users) |user| {
|
||||
try PackedUser.packTo(&buf, user, math.maxInt(u64), shellIndex);
|
||||
try PackedUser.packTo(&buf, user, additional_gids, shellIndex);
|
||||
try pad.arrayList(&buf, PackedUser.alignment_bits);
|
||||
}
|
||||
|
||||
|
@ -349,10 +350,7 @@ test "construct PackedUser section" {
|
|||
while (try it1.next()) |user| : (i += 1) {
|
||||
try testing.expectEqual(users[i].uid, user.uid());
|
||||
try testing.expectEqual(users[i].gid, user.gid());
|
||||
try testing.expectEqual(
|
||||
@as(u64, math.maxInt(u64)),
|
||||
user.additionalGidsOffset(),
|
||||
);
|
||||
try testing.expectEqual(user.additionalGidsOffset(), additional_gids);
|
||||
try testing.expectEqualStrings(users[i].name, user.name());
|
||||
try testing.expectEqualStrings(users[i].gecos, user.gecos());
|
||||
try testing.expectEqualStrings(users[i].home, user.home());
|
||||
|
|
Loading…
Reference in New Issue