#include "tsqlite.h" Result(void) test_connection(){ Deferral(8); try(tsqlite_connection* conn, p, tsqlite_connection_open("db.sqlite")); Defer(if(conn != NULL) { IGNORE_RESULT tsqlite_connection_close(conn); }); // close manually to test tsqlite_connection_close try_void(tsqlite_connection_close(conn)); conn = NULL; Return RESULT_VOID; } Result(void) test_statement(){ Deferral(8); try(tsqlite_connection* conn, p, tsqlite_connection_open("db.sqlite")); Defer(if(conn != NULL) { IGNORE_RESULT tsqlite_connection_close(conn); }); try(tsqlite_statement* st, p, tsqlite_statement_compile(conn, STR("meow meow"))); Defer(tsqlite_statement_free(st)); try_void(tsqlite_statement_bind_null(st, "nul")); bool has_next_row = false; do { try(has_next_row, i, tsqlite_statement_execNext(st)); str cell_str = str_null; try_void(tsqlite_statement_getResult_str(st, &cell_str)); printf("RESULT(%i, %i): '"FMT_str"'\n", st->result_row, st->result_col, str_expand(cell_str)); } while(has_next_row); // close manually to test tsqlite_connection_close try_void(tsqlite_connection_close(conn)); conn = NULL; Return RESULT_VOID; } int main(){ Deferral(32); try_fatal_void(tlibc_init()); try_fatal_void(tsqlite_init()); Defer(tlibc_deinit()); Defer(tsqlite_deinit()); try_fatal_void(test_connection()); try_fatal_void(test_statement()); Return 0; }