Skip to content

Commit caab7e1

Browse files
committed
Added a more realistic test.
1 parent 7c448f0 commit caab7e1

1 file changed

Lines changed: 95 additions & 0 deletions

File tree

source/test2.d

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import libsql_deimos;
2+
import core.stdc.stdio;
3+
import std.string;
4+
5+
@("Persons")
6+
unittest {
7+
libsql_database_t db;
8+
libsql_connection_t conn;
9+
char *err = null;
10+
int retval = 0;
11+
libsql_rows_t rows;
12+
libsql_row_t row;
13+
int num_cols;
14+
15+
16+
retval = libsql_open_ext(":memory:", &db, &err);
17+
if (retval != 0) {
18+
fprintf( core.stdc.stdio.stderr, "%s\n", err);
19+
}
20+
assert(retval == 0);
21+
22+
retval = libsql_connect(db, &conn, &err);
23+
if (retval != 0) {
24+
fprintf( core.stdc.stdio.stderr, "%s\n", err);
25+
}
26+
assert(retval == 0);
27+
28+
const string create_table="CREATE TABLE Persons(
29+
Name TEXT,
30+
Age INTEGER
31+
);";
32+
33+
retval = libsql_execute(conn,toStringz(create_table), &err);
34+
assert(retval == 0);
35+
36+
const insert_person="INSERT INTO Persons VALUES ('Paul',20);";
37+
38+
retval = libsql_execute(conn,toStringz(insert_person), &err);
39+
if (retval != 0) {
40+
fprintf( core.stdc.stdio.stderr, "%s\n", err);
41+
}
42+
assert(retval == 0);
43+
44+
const insert_person2="INSERT INTO Persons VALUES ('Laura',30)";
45+
46+
retval = libsql_execute(conn,toStringz(insert_person2), &err);
47+
if (retval != 0) {
48+
fprintf( core.stdc.stdio.stderr, "%s\n", err);
49+
}
50+
assert(retval == 0);
51+
52+
53+
retval = libsql_query(conn, "SELECT * FROM Persons;", &rows, &err);
54+
if (retval != 0) {
55+
fprintf( core.stdc.stdio.stderr, "%s\n", err);
56+
}
57+
assert(retval == 0);
58+
59+
num_cols = libsql_column_count(rows);
60+
//fprintf( core.stdc.stdio.stderr, "num_colds =%d\n", num_cols);
61+
assert(num_cols==2);
62+
63+
while ((retval = libsql_next_row(rows, &row, &err)) == 0) {
64+
if (!err && !row) {
65+
break;
66+
}
67+
for (int col = 0; col < num_cols; col++) {
68+
if (col==0) {
69+
char* value;
70+
retval = libsql_get_string(row, col, &value, &err);
71+
if (retval != 0) {
72+
fprintf(core.stdc.stdio.stderr, "%s\n", err);
73+
} else {
74+
printf("%s\t", value);
75+
}
76+
} else if (col==1) {
77+
long value;
78+
retval = libsql_get_int(row, col, &value, &err);
79+
if (retval != 0) {
80+
fprintf(core.stdc.stdio.stderr, "%s\n", err);
81+
} else {
82+
printf("%lld\n", value);
83+
}
84+
}
85+
assert(retval == 0);
86+
}
87+
err = null;
88+
}
89+
assert(retval == 0);
90+
91+
quit:
92+
libsql_free_rows(rows);
93+
libsql_disconnect(conn);
94+
libsql_close(db);
95+
}

0 commit comments

Comments
 (0)