summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Vincent Rischmann2022-08-21 13:58:22 +0200
committerGravatar Vincent Rischmann2022-08-21 14:27:14 +0200
commit7de12818f258c02f82c4a3ffa9834523811987ad (patch)
tree43bc2b4d6615f5eb242d1c727fddf03bfa4d65a6
parentci: disable caching on Windows (diff)
downloadzig-sqlite-7de12818f258c02f82c4a3ffa9834523811987ad.tar.gz
zig-sqlite-7de12818f258c02f82c4a3ffa9834523811987ad.tar.xz
zig-sqlite-7de12818f258c02f82c4a3ffa9834523811987ad.zip
fuzz: reread the data from the table
-rw-r--r--fuzz/main.zig29
1 files changed, 29 insertions, 0 deletions
diff --git a/fuzz/main.zig b/fuzz/main.zig
index 075b7ff..98a1577 100644
--- a/fuzz/main.zig
+++ b/fuzz/main.zig
@@ -43,4 +43,33 @@ pub fn zigMain() !void {
43 error.SQLiteError => return, 43 error.SQLiteError => return,
44 else => return err, 44 else => return err,
45 }; 45 };
46
47 var stmt = db.prepareDynamic("SELECT name, data FROM test") catch |err| switch (err) {
48 error.SQLiteError => return,
49 else => return err,
50 };
51 defer stmt.deinit();
52
53 var rows_arena = std.heap.ArenaAllocator.init(allocator);
54 defer rows_arena.deinit();
55
56 const row_opt = stmt.oneAlloc(
57 struct {
58 name: sqlite.Text,
59 data: sqlite.Blob,
60 },
61 rows_arena.allocator(),
62 .{},
63 .{},
64 ) catch |err| switch (err) {
65 error.SQLiteError => return,
66 else => return err,
67 };
68
69 if (row_opt) |row| {
70 if (!std.mem.eql(u8, row.name.data, data)) return error.InvalidNameField;
71 if (!std.mem.eql(u8, row.data.data, data)) return error.InvalidDataField;
72 } else {
73 return error.NoRowsFound;
74 }
46} 75}