summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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}