1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
/* file : test/driver.c
* copyright : not copyrighted - public domain
*/
/*
* Basic test to make sure the library is usable.
*/
#ifdef NDEBUG
# undef NDEBUG
#endif
#include <sqlite3.h>
#include <stddef.h> /* NULL */
#include <assert.h>
static int
sql (sqlite3* db, const char* stmt)
{
return sqlite3_exec (db, stmt, NULL, NULL, NULL) == SQLITE_OK;
}
int
main ()
{
sqlite3* db;
int r;
r = sqlite3_open_v2 (":memory:",
&db,
SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,
NULL);
assert (r == SQLITE_OK);
assert (sql (db, "BEGIN"));
assert (sql (db, "CREATE TABLE test (id INTEGER PRIMARY KEY, str TEXT)"));
assert (sql (db, "COMMIT"));
assert (sql (db, "BEGIN"));
assert (sql (db, "INSERT INTO test VALUES (123, 'abc')"));
assert (sql (db, "COMMIT"));
assert (sql (db, "BEGIN"));
assert (!sql (db, "INSERT INTO test VALUES (123, 'ABC')"));
assert (sql (db, "ROLLBACK"));
assert (sql (db, "BEGIN"));
assert (sql (db, "DROP TABLE test"));
assert (sql (db, "COMMIT"));
r = sqlite3_close (db);
assert (r == SQLITE_OK);
return 0;
}
|