diff options
| author | 2021-12-18 20:53:01 +0100 | |
|---|---|---|
| committer | 2021-12-18 21:47:16 +0100 | |
| commit | 004dbb55cce0814b180b46e4727dd9813ae407c9 (patch) | |
| tree | 67323121d6a8eaabb8daa8431542f5d0c6835e06 /sqlite.zig | |
| parent | rename argument for clarity (diff) | |
| download | zig-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 '')
| -rw-r--r-- | sqlite.zig | 30 |
1 files changed, 30 insertions, 0 deletions
| @@ -1930,6 +1930,7 @@ fn addTestData(db: *Db) !void { | |||
| 1930 | 1930 | ||
| 1931 | test "sqlite: db init" { | 1931 | test "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 | ||
| 1974 | test "sqlite: last insert row id" { | 1976 | test "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 | ||
| 1987 | test "sqlite: statement exec" { | 1990 | test "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 | ||
| 2242 | test "sqlite: read a single integer value" { | 2252 | test "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 | ||
| 2345 | test "sqlite: read a single value into void" { | 2358 | test "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 | ||
| 2359 | test "sqlite: read a single value into bool" { | 2373 | test "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 | ||
| 2375 | test "sqlite: insert bool and bind bool" { | 2390 | test "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 | ||
| 2397 | test "sqlite: bind string literal" { | 2413 | test "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 | ||
| 2501 | test "sqlite: statement reset" { | 2521 | test "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 | ||
| 2684 | test "sqlite: failing prepare statement" { | 2706 | test "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 | ||
| 2743 | test "sqlite: exec with diags, failing statement" { | 2766 | test "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{}; |