From f698726cf8bdd37789bc458e80eb6e4a2d05e955 Mon Sep 17 00:00:00 2001 From: Vincent Rischmann Date: Fri, 1 Jan 2021 21:50:48 +0100 Subject: add a test that reads only pointers --- sqlite.zig | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'sqlite.zig') diff --git a/sqlite.zig b/sqlite.zig index 32a5f97..f68d13f 100644 --- a/sqlite.zig +++ b/sqlite.zig @@ -1345,6 +1345,41 @@ test "sqlite: bind pointer" { } } +test "sqlite: read pointers" { + var arena = std.heap.ArenaAllocator.init(testing.allocator); + defer arena.deinit(); + + var db: Db = undefined; + try db.init(initOptions()); + try addTestData(&db); + + const query = "SELECT id, name, age, weight FROM user"; + + var stmt = try db.prepare(query); + defer stmt.deinit(); + + const rows = try stmt.all( + struct { + id: *usize, + name: *[]const u8, + age: *u32, + weight: *f32, + }, + &arena.allocator, + .{}, + .{}, + ); + + testing.expectEqual(@as(usize, 3), rows.len); + for (rows) |row, i| { + const exp = test_users[i]; + testing.expectEqual(exp.id, row.id.*); + testing.expectEqualStrings(exp.name, row.name.*); + testing.expectEqual(exp.age, row.age.*); + testing.expectEqual(exp.weight, row.weight.*); + } +} + test "sqlite: statement reset" { var db: Db = undefined; try db.init(initOptions()); -- cgit v1.2.3