mirror of
https://github.com/sbrow/envr.git
synced 2026-06-27 18:48:33 -04:00
feat: zig-sqlite.
This commit is contained in:
50
zig-vendor/zig-sqlite/test.zig
Normal file
50
zig-vendor/zig-sqlite/test.zig
Normal file
@@ -0,0 +1,50 @@
|
||||
const std = @import("std");
|
||||
const build_options = @import("build_options");
|
||||
const mem = std.mem;
|
||||
const testing = std.testing;
|
||||
|
||||
const Db = @import("sqlite.zig").Db;
|
||||
|
||||
pub fn getTestDb() !Db {
|
||||
var buf: [1024]u8 = undefined;
|
||||
var fba = std.heap.FixedBufferAllocator.init(&buf);
|
||||
|
||||
const mode = dbMode(fba.allocator());
|
||||
|
||||
return try Db.init(.{
|
||||
.open_flags = .{
|
||||
.write = true,
|
||||
.create = true,
|
||||
},
|
||||
.mode = mode,
|
||||
});
|
||||
}
|
||||
|
||||
fn tmpDbPath(allocator: mem.Allocator) ![:0]const u8 {
|
||||
const tmp_dir = testing.tmpDir(.{});
|
||||
|
||||
const path = try std.fs.path.join(allocator, &[_][]const u8{
|
||||
"zig-cache",
|
||||
"tmp",
|
||||
&tmp_dir.sub_path,
|
||||
"zig-sqlite.db",
|
||||
});
|
||||
defer allocator.free(path);
|
||||
|
||||
return allocator.dupeZ(u8, path);
|
||||
}
|
||||
|
||||
fn dbMode(allocator: mem.Allocator) Db.Mode {
|
||||
return if (build_options.in_memory) blk: {
|
||||
break :blk .{ .Memory = {} };
|
||||
} else blk: {
|
||||
if (build_options.dbfile) |dbfile| {
|
||||
return .{ .File = allocator.dupeZ(u8, dbfile) catch unreachable };
|
||||
}
|
||||
|
||||
const path = tmpDbPath(allocator) catch unreachable;
|
||||
|
||||
std.fs.cwd().deleteFile(path) catch {};
|
||||
break :blk .{ .File = path };
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user