summaryrefslogtreecommitdiff
path: root/sqlite.zig
diff options
context:
space:
mode:
authorGravatar Vincent Rischmann2021-12-18 20:53:01 +0100
committerGravatar Vincent Rischmann2021-12-18 21:47:16 +0100
commit004dbb55cce0814b180b46e4727dd9813ae407c9 (patch)
tree67323121d6a8eaabb8daa8431542f5d0c6835e06 /sqlite.zig
parentrename argument for clarity (diff)
downloadzig-sqlite-004dbb55cce0814b180b46e4727dd9813ae407c9.tar.gz
zig-sqlite-004dbb55cce0814b180b46e4727dd9813ae407c9.tar.xz
zig-sqlite-004dbb55cce0814b180b46e4727dd9813ae407c9.zip
always deinit the test database
otherwise using the dbfile option won't work
Diffstat (limited to 'sqlite.zig')
-rw-r--r--sqlite.zig30
1 files changed, 30 insertions, 0 deletions
diff --git a/sqlite.zig b/sqlite.zig
index 21c1426..ac70cff 100644
--- a/sqlite.zig
+++ b/sqlite.zig
@@ -1930,6 +1930,7 @@ fn addTestData(db: *Db) !void {
1930 1930
1931test "sqlite: db init" { 1931test "sqlite: db init" {
1932 var db = try getTestDb(); 1932 var db = try getTestDb();
1933 defer db.deinit();
1933 _ = db; 1934 _ = db;
1934} 1935}
1935 1936
@@ -1939,6 +1940,7 @@ test "sqlite: db pragma" {
1939 var allocator = arena.allocator(); 1940 var allocator = arena.allocator();
1940 1941
1941 var db = try getTestDb(); 1942 var db = try getTestDb();
1943 defer db.deinit();
1942 1944
1943 const foreign_keys = try db.pragma(usize, .{}, "foreign_keys", null); 1945 const foreign_keys = try db.pragma(usize, .{}, "foreign_keys", null);
1944 try testing.expect(foreign_keys != null); 1946 try testing.expect(foreign_keys != null);
@@ -1973,6 +1975,7 @@ test "sqlite: db pragma" {
1973 1975
1974test "sqlite: last insert row id" { 1976test "sqlite: last insert row id" {
1975 var db = try getTestDb(); 1977 var db = try getTestDb();
1978 defer db.deinit();
1976 try createTestTables(&db); 1979 try createTestTables(&db);
1977 1980
1978 try db.exec("INSERT INTO user(name, age) VALUES(?, ?{u32})", .{}, .{ 1981 try db.exec("INSERT INTO user(name, age) VALUES(?, ?{u32})", .{}, .{
@@ -1986,6 +1989,7 @@ test "sqlite: last insert row id" {
1986 1989
1987test "sqlite: statement exec" { 1990test "sqlite: statement exec" {
1988 var db = try getTestDb(); 1991 var db = try getTestDb();
1992 defer db.deinit();
1989 try addTestData(&db); 1993 try addTestData(&db);
1990 1994
1991 // Test with a Blob struct 1995 // Test with a Blob struct
@@ -2012,6 +2016,7 @@ test "sqlite: statement execDynamic" {
2012 // , but it's not our task to test. This test is a simple test to check if the .bindNamedStruct working. 2016 // , but it's not our task to test. This test is a simple test to check if the .bindNamedStruct working.
2013 // Because of the dependence of Statment to DynamicStatment, it's not required to test rest functions. 2017 // Because of the dependence of Statment to DynamicStatment, it's not required to test rest functions.
2014 var db = try getTestDb(); 2018 var db = try getTestDb();
2019 defer db.deinit();
2015 try addTestData(&db); 2020 try addTestData(&db);
2016 2021
2017 // Test with a Blob struct 2022 // Test with a Blob struct
@@ -2039,6 +2044,7 @@ test "sqlite: read a single user into a struct" {
2039 var allocator = arena.allocator(); 2044 var allocator = arena.allocator();
2040 2045
2041 var db = try getTestDb(); 2046 var db = try getTestDb();
2047 defer db.deinit();
2042 try addTestData(&db); 2048 try addTestData(&db);
2043 2049
2044 var stmt = try db.prepare("SELECT * FROM user WHERE id = ?{usize}"); 2050 var stmt = try db.prepare("SELECT * FROM user WHERE id = ?{usize}");
@@ -2101,6 +2107,7 @@ test "sqlite: read all users into a struct" {
2101 var allocator = arena.allocator(); 2107 var allocator = arena.allocator();
2102 2108
2103 var db = try getTestDb(); 2109 var db = try getTestDb();
2110 defer db.deinit();
2104 try addTestData(&db); 2111 try addTestData(&db);
2105 2112
2106 var stmt = try db.prepare("SELECT * FROM user"); 2113 var stmt = try db.prepare("SELECT * FROM user");
@@ -2123,6 +2130,7 @@ test "sqlite: read in an anonymous struct" {
2123 var allocator = arena.allocator(); 2130 var allocator = arena.allocator();
2124 2131
2125 var db = try getTestDb(); 2132 var db = try getTestDb();
2133 defer db.deinit();
2126 try addTestData(&db); 2134 try addTestData(&db);
2127 2135
2128 var stmt = try db.prepare("SELECT name, id, name, age, id, weight FROM user WHERE id = ?{usize}"); 2136 var stmt = try db.prepare("SELECT name, id, name, age, id, weight FROM user WHERE id = ?{usize}");
@@ -2158,6 +2166,7 @@ test "sqlite: read in a Text struct" {
2158 var allocator = arena.allocator(); 2166 var allocator = arena.allocator();
2159 2167
2160 var db = try getTestDb(); 2168 var db = try getTestDb();
2169 defer db.deinit();
2161 try addTestData(&db); 2170 try addTestData(&db);
2162 2171
2163 var stmt = try db.prepare("SELECT name, id, age FROM user WHERE id = ?{usize}"); 2172 var stmt = try db.prepare("SELECT name, id, age FROM user WHERE id = ?{usize}");
@@ -2187,6 +2196,7 @@ test "sqlite: read a single text value" {
2187 var allocator = arena.allocator(); 2196 var allocator = arena.allocator();
2188 2197
2189 var db = try getTestDb(); 2198 var db = try getTestDb();
2199 defer db.deinit();
2190 try addTestData(&db); 2200 try addTestData(&db);
2191 2201
2192 const types = &[_]type{ 2202 const types = &[_]type{
@@ -2241,6 +2251,7 @@ test "sqlite: read a single text value" {
2241 2251
2242test "sqlite: read a single integer value" { 2252test "sqlite: read a single integer value" {
2243 var db = try getTestDb(); 2253 var db = try getTestDb();
2254 defer db.deinit();
2244 try addTestData(&db); 2255 try addTestData(&db);
2245 2256
2246 const types = &[_]type{ 2257 const types = &[_]type{
@@ -2277,6 +2288,7 @@ test "sqlite: read a single value into an enum backed by an integer" {
2277 var allocator = arena.allocator(); 2288 var allocator = arena.allocator();
2278 2289
2279 var db = try getTestDb(); 2290 var db = try getTestDb();
2291 defer db.deinit();
2280 try createTestTables(&db); 2292 try createTestTables(&db);
2281 2293
2282 try db.exec("INSERT INTO user(id, age) VALUES(?{usize}, ?{usize})", .{}, .{ 2294 try db.exec("INSERT INTO user(id, age) VALUES(?{usize}, ?{usize})", .{}, .{
@@ -2323,6 +2335,7 @@ test "sqlite: read a single value into an enum backed by a string" {
2323 var allocator = arena.allocator(); 2335 var allocator = arena.allocator();
2324 2336
2325 var db = try getTestDb(); 2337 var db = try getTestDb();
2338 defer db.deinit();
2326 try createTestTables(&db); 2339 try createTestTables(&db);
2327 2340
2328 try db.exec("INSERT INTO user(id, favorite_color) VALUES(?{usize}, ?{[]const u8})", .{}, .{ 2341 try db.exec("INSERT INTO user(id, favorite_color) VALUES(?{usize}, ?{[]const u8})", .{}, .{
@@ -2344,6 +2357,7 @@ test "sqlite: read a single value into an enum backed by a string" {
2344 2357
2345test "sqlite: read a single value into void" { 2358test "sqlite: read a single value into void" {
2346 var db = try getTestDb(); 2359 var db = try getTestDb();
2360 defer db.deinit();
2347 try addTestData(&db); 2361 try addTestData(&db);
2348 2362
2349 const query = "SELECT age FROM user WHERE id = ?{usize}"; 2363 const query = "SELECT age FROM user WHERE id = ?{usize}";
@@ -2358,6 +2372,7 @@ test "sqlite: read a single value into void" {
2358 2372
2359test "sqlite: read a single value into bool" { 2373test "sqlite: read a single value into bool" {
2360 var db = try getTestDb(); 2374 var db = try getTestDb();
2375 defer db.deinit();
2361 try addTestData(&db); 2376 try addTestData(&db);
2362 2377
2363 const query = "SELECT id FROM user WHERE id = ?{usize}"; 2378 const query = "SELECT id FROM user WHERE id = ?{usize}";
@@ -2374,6 +2389,7 @@ test "sqlite: read a single value into bool" {
2374 2389
2375test "sqlite: insert bool and bind bool" { 2390test "sqlite: insert bool and bind bool" {
2376 var db = try getTestDb(); 2391 var db = try getTestDb();
2392 defer db.deinit();
2377 try addTestData(&db); 2393 try addTestData(&db);
2378 2394
2379 try db.exec("INSERT INTO article(id, author_id, is_published) VALUES(?{usize}, ?{usize}, ?{bool})", .{}, .{ 2395 try db.exec("INSERT INTO article(id, author_id, is_published) VALUES(?{usize}, ?{usize}, ?{bool})", .{}, .{
@@ -2396,6 +2412,7 @@ test "sqlite: insert bool and bind bool" {
2396 2412
2397test "sqlite: bind string literal" { 2413test "sqlite: bind string literal" {
2398 var db = try getTestDb(); 2414 var db = try getTestDb();
2415 defer db.deinit();
2399 try addTestData(&db); 2416 try addTestData(&db);
2400 2417
2401 try db.exec("INSERT INTO article(id, data) VALUES(?, ?)", .{}, .{ 2418 try db.exec("INSERT INTO article(id, data) VALUES(?, ?)", .{}, .{
@@ -2419,6 +2436,7 @@ test "sqlite: bind pointer" {
2419 var allocator = arena.allocator(); 2436 var allocator = arena.allocator();
2420 2437
2421 var db = try getTestDb(); 2438 var db = try getTestDb();
2439 defer db.deinit();
2422 try addTestData(&db); 2440 try addTestData(&db);
2423 2441
2424 const query = "SELECT name FROM user WHERE id = ?"; 2442 const query = "SELECT name FROM user WHERE id = ?";
@@ -2441,6 +2459,7 @@ test "sqlite: read pointers" {
2441 var allocator = arena.allocator(); 2459 var allocator = arena.allocator();
2442 2460
2443 var db = try getTestDb(); 2461 var db = try getTestDb();
2462 defer db.deinit();
2444 try addTestData(&db); 2463 try addTestData(&db);
2445 2464
2446 const query = "SELECT id, name, age, weight FROM user"; 2465 const query = "SELECT id, name, age, weight FROM user";
@@ -2475,6 +2494,7 @@ test "sqlite: optional" {
2475 defer arena.deinit(); 2494 defer arena.deinit();
2476 2495
2477 var db = try getTestDb(); 2496 var db = try getTestDb();
2497 defer db.deinit();
2478 try addTestData(&db); 2498 try addTestData(&db);
2479 2499
2480 const published: ?bool = true; 2500 const published: ?bool = true;
@@ -2500,6 +2520,7 @@ test "sqlite: optional" {
2500 2520
2501test "sqlite: statement reset" { 2521test "sqlite: statement reset" {
2502 var db = try getTestDb(); 2522 var db = try getTestDb();
2523 defer db.deinit();
2503 try addTestData(&db); 2524 try addTestData(&db);
2504 2525
2505 // Add data 2526 // Add data
@@ -2528,6 +2549,7 @@ test "sqlite: statement iterator" {
2528 var allocator = arena.allocator(); 2549 var allocator = arena.allocator();
2529 2550
2530 var db = try getTestDb(); 2551 var db = try getTestDb();
2552 defer db.deinit();
2531 try addTestData(&db); 2553 try addTestData(&db);
2532 2554
2533 // Cleanup first 2555 // Cleanup first
@@ -2683,6 +2705,7 @@ test "sqlite: failing open" {
2683 2705
2684test "sqlite: failing prepare statement" { 2706test "sqlite: failing prepare statement" {
2685 var db = try getTestDb(); 2707 var db = try getTestDb();
2708 defer db.deinit();
2686 2709
2687 var diags: Diagnostics = undefined; 2710 var diags: Diagnostics = undefined;
2688 2711
@@ -2742,6 +2765,7 @@ test "sqlite: diagnostics format" {
2742 2765
2743test "sqlite: exec with diags, failing statement" { 2766test "sqlite: exec with diags, failing statement" {
2744 var db = try getTestDb(); 2767 var db = try getTestDb();
2768 defer db.deinit();
2745 2769
2746 var diags = Diagnostics{}; 2770 var diags = Diagnostics{};
2747 2771
@@ -2765,6 +2789,7 @@ test "sqlite: savepoint with no failures" {
2765 var allocator = arena.allocator(); 2789 var allocator = arena.allocator();
2766 2790
2767 var db = try getTestDb(); 2791 var db = try getTestDb();
2792 defer db.deinit();
2768 try addTestData(&db); 2793 try addTestData(&db);
2769 2794
2770 { 2795 {
@@ -2813,6 +2838,7 @@ test "sqlite: two nested savepoints with inner failure" {
2813 var allocator = arena.allocator(); 2838 var allocator = arena.allocator();
2814 2839
2815 var db = try getTestDb(); 2840 var db = try getTestDb();
2841 defer db.deinit();
2816 try addTestData(&db); 2842 try addTestData(&db);
2817 2843
2818 { 2844 {
@@ -2863,6 +2889,7 @@ test "sqlite: two nested savepoints with outer failure" {
2863 var allocator = arena.allocator(); 2889 var allocator = arena.allocator();
2864 2890
2865 var db = try getTestDb(); 2891 var db = try getTestDb();
2892 defer db.deinit();
2866 try addTestData(&db); 2893 try addTestData(&db);
2867 2894
2868 blk: { 2895 blk: {
@@ -2963,6 +2990,7 @@ test "sqlite: bind custom type" {
2963 var allocator = arena.allocator(); 2990 var allocator = arena.allocator();
2964 2991
2965 var db = try getTestDb(); 2992 var db = try getTestDb();
2993 defer db.deinit();
2966 try addTestData(&db); 2994 try addTestData(&db);
2967 2995
2968 const my_data = MyData{ 2996 const my_data = MyData{
@@ -2999,6 +3027,7 @@ test "sqlite: prepareDynamic" {
2999 var allocator = arena.allocator(); 3027 var allocator = arena.allocator();
3000 3028
3001 var db = try getTestDb(); 3029 var db = try getTestDb();
3030 defer db.deinit();
3002 try addTestData(&db); 3031 try addTestData(&db);
3003 3032
3004 var diags = Diagnostics{}; 3033 var diags = Diagnostics{};
@@ -3040,6 +3069,7 @@ test "sqlite: oneDynamic" {
3040 var allocator = arena.allocator(); 3069 var allocator = arena.allocator();
3041 3070
3042 var db = try getTestDb(); 3071 var db = try getTestDb();
3072 defer db.deinit();
3043 try addTestData(&db); 3073 try addTestData(&db);
3044 3074
3045 var diags = Diagnostics{}; 3075 var diags = Diagnostics{};