summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Vincent Rischmann2021-01-01 21:50:48 +0100
committerGravatar Vincent Rischmann2021-01-06 01:04:18 +0100
commitf698726cf8bdd37789bc458e80eb6e4a2d05e955 (patch)
tree50d9b63f89892c344484dc7070763a2feaf3e919
parentimplement reading a value into a one-element pointer (diff)
downloadzig-sqlite-f698726cf8bdd37789bc458e80eb6e4a2d05e955.tar.gz
zig-sqlite-f698726cf8bdd37789bc458e80eb6e4a2d05e955.tar.xz
zig-sqlite-f698726cf8bdd37789bc458e80eb6e4a2d05e955.zip
add a test that reads only pointers
-rw-r--r--sqlite.zig35
1 files changed, 35 insertions, 0 deletions
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" {
1345 } 1345 }
1346} 1346}
1347 1347
1348test "sqlite: read pointers" {
1349 var arena = std.heap.ArenaAllocator.init(testing.allocator);
1350 defer arena.deinit();
1351
1352 var db: Db = undefined;
1353 try db.init(initOptions());
1354 try addTestData(&db);
1355
1356 const query = "SELECT id, name, age, weight FROM user";
1357
1358 var stmt = try db.prepare(query);
1359 defer stmt.deinit();
1360
1361 const rows = try stmt.all(
1362 struct {
1363 id: *usize,
1364 name: *[]const u8,
1365 age: *u32,
1366 weight: *f32,
1367 },
1368 &arena.allocator,
1369 .{},
1370 .{},
1371 );
1372
1373 testing.expectEqual(@as(usize, 3), rows.len);
1374 for (rows) |row, i| {
1375 const exp = test_users[i];
1376 testing.expectEqual(exp.id, row.id.*);
1377 testing.expectEqualStrings(exp.name, row.name.*);
1378 testing.expectEqual(exp.age, row.age.*);
1379 testing.expectEqual(exp.weight, row.weight.*);
1380 }
1381}
1382
1348test "sqlite: statement reset" { 1383test "sqlite: statement reset" {
1349 var db: Db = undefined; 1384 var db: Db = undefined;
1350 try db.init(initOptions()); 1385 try db.init(initOptions());