CGroup is extern struct
This commit is contained in:
parent
70120051c8
commit
be9bf3f51c
42
lib/DB.zig
42
lib/DB.zig
@ -548,35 +548,6 @@ test "read/write via iovec" {
|
|||||||
var db = try DB.fromCorpus(allocator, &corpus);
|
var db = try DB.fromCorpus(allocator, &corpus);
|
||||||
defer db.deinit(allocator);
|
defer db.deinit(allocator);
|
||||||
|
|
||||||
// TODO: replace with an integration test when high-level
|
|
||||||
// reader API is present
|
|
||||||
//const blob = sections.groupmembers.blob;
|
|
||||||
//var i: usize = 0;
|
|
||||||
//while (i < corpus.groups.len) : (i += 1) {
|
|
||||||
//const offset = sections.groupmembers.idx2offset[i];
|
|
||||||
//var vit = try compress.VarintSliceIterator(blob[offset..]);
|
|
||||||
//var it = compress.DeltaDecompressionIterator(&vit);
|
|
||||||
//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);
|
|
||||||
//}
|
|
||||||
//try testing.expectEqual(it.next(), null);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//var it = PackedUser.iterator(sections.users.blob, sections.shell_reader);
|
|
||||||
//i = 0;
|
|
||||||
//while (i < corpus.users.len) : (i += 1) {
|
|
||||||
// const got = (try it.next()).?;
|
|
||||||
// const user = corpus.users.get(i);
|
|
||||||
// try testing.expectEqual(user.uid, got.uid());
|
|
||||||
// try testing.expectEqual(user.gid, got.gid());
|
|
||||||
// try testing.expectEqualStrings(user.name, got.name());
|
|
||||||
// try testing.expectEqualStrings(user.gecos, got.gecos());
|
|
||||||
// try testing.expectEqualStrings(user.home, got.home());
|
|
||||||
// try testing.expectEqualStrings(user.shell, got.shell(sections.shell_reader));
|
|
||||||
//}
|
|
||||||
|
|
||||||
const fd = try os.memfd_create("test_turbonss_db", 0);
|
const fd = try os.memfd_create("test_turbonss_db", 0);
|
||||||
defer os.close(fd);
|
defer os.close(fd);
|
||||||
|
|
||||||
@ -594,7 +565,7 @@ test "read/write via iovec" {
|
|||||||
try testing.expectEqualSlices(u32, db.idx_uid2user, db2.idx_uid2user[0..num_users]);
|
try testing.expectEqualSlices(u32, db.idx_uid2user, db2.idx_uid2user[0..num_users]);
|
||||||
}
|
}
|
||||||
|
|
||||||
test "high-level API" {
|
test "getgrnam/getgrgid" {
|
||||||
var corpus = try Corpus.testCorpus(testing.allocator);
|
var corpus = try Corpus.testCorpus(testing.allocator);
|
||||||
defer corpus.deinit();
|
defer corpus.deinit();
|
||||||
var db = try DB.fromCorpus(testing.allocator, &corpus);
|
var db = try DB.fromCorpus(testing.allocator, &corpus);
|
||||||
@ -627,12 +598,11 @@ test "high-level API" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "getgr_bufsize" {
|
test "getgr_bufsize" {
|
||||||
var corpus = try Corpus.testCorpus(testing.allocator);
|
var arena = ArenaAllocator.init(testing.allocator);
|
||||||
defer corpus.deinit();
|
defer arena.deinit();
|
||||||
var db = try DB.fromCorpus(testing.allocator, &corpus);
|
var corpus = try Corpus.testCorpus(arena.allocator());
|
||||||
defer db.deinit(testing.allocator);
|
var db = try DB.fromCorpus(arena.allocator(), &corpus);
|
||||||
var buf = try testing.allocator.alloc(u8, db.header.getgr_bufsize);
|
var buf = try arena.allocator().alloc(u8, db.header.getgr_bufsize);
|
||||||
defer testing.allocator.free(buf);
|
|
||||||
|
|
||||||
_ = try db.getgrnam("all", &buf);
|
_ = try db.getgrnam("all", &buf);
|
||||||
buf.len -= 1;
|
buf.len -= 1;
|
||||||
|
@ -3,7 +3,7 @@ const meta = @import("std").meta;
|
|||||||
// Name type should be 0-terminated, members should be null-terminated, but
|
// Name type should be 0-terminated, members should be null-terminated, but
|
||||||
// sentinel is not part of the type (but is always there). Adding sentinel
|
// sentinel is not part of the type (but is always there). Adding sentinel
|
||||||
// crashes zig compiler in pre-0.10. https://github.com/ziglang/zig/issues/7517
|
// crashes zig compiler in pre-0.10. https://github.com/ziglang/zig/issues/7517
|
||||||
pub const CGroup = struct {
|
pub const CGroup = extern struct {
|
||||||
gid: u32,
|
gid: u32,
|
||||||
// should be [*:0]const u8
|
// should be [*:0]const u8
|
||||||
name: [*]const u8,
|
name: [*]const u8,
|
||||||
|
Loading…
Reference in New Issue
Block a user