Skip to content

Commit c9217df

Browse files
committed
libsql-sqlite3: Unify database opening in test_walapi.c
1 parent 36b37ac commit c9217df

File tree

1 file changed

+24
-25
lines changed

1 file changed

+24
-25
lines changed

libsql-sqlite3/src/test_walapi.c

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -103,42 +103,41 @@ static void gen_data(sqlite3 *db){
103103
sqlite3_exec(db, "INSERT INTO users (id, name) VALUES (3, 'Jim Beam')", 0, 0, 0);
104104
}
105105

106+
int open_db(const char *path, sqlite3 **db) {
107+
int rc;
108+
109+
rc = sqlite3_open(path, db);
110+
if (rc != SQLITE_OK) {
111+
fprintf(stderr, "Can't open database %s: %s\n", path, sqlite3_errmsg(*db));
112+
return rc;
113+
}
114+
rc = sqlite3_exec(*db, "PRAGMA journal_mode=WAL", NULL, NULL, NULL);
115+
if (rc != SQLITE_OK) {
116+
fprintf(stderr, "Can't set journal mode for %s: %s\n", path, sqlite3_errmsg(*db));
117+
return rc;
118+
}
119+
rc = sqlite3_wal_autocheckpoint(*db, 0);
120+
if (rc != SQLITE_OK) {
121+
fprintf(stderr, "Can't disable checkpointing for %s: %s\n", path, sqlite3_errmsg(*db));
122+
return rc;
123+
}
124+
return rc;
125+
}
126+
106127
int main(int argc, char *argv[])
107128
{
108129
sqlite3 *db_primary, *db_backup;
109130
int rc;
110131

111-
rc = sqlite3_open("primary.db", &db_primary);
132+
rc = open_db("primary.db", &db_primary);
112133
if (rc != SQLITE_OK) {
113-
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db_primary));
114134
return 1;
115135
}
116-
rc = sqlite3_wal_autocheckpoint(db_primary, 0);
117-
if (rc != SQLITE_OK) {
118-
fprintf(stderr, "Can't disable checkpointing: %s\n", sqlite3_errmsg(db_primary));
119-
return 1;
120-
}
121-
sqlite3_exec(db_primary, "PRAGMA journal_mode=WAL", NULL, NULL, NULL);
122-
123136
gen_data(db_primary);
124137

125-
rc = sqlite3_open("backup.db", &db_backup);
126-
if (rc != SQLITE_OK) {
127-
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db_backup));
128-
return 1;
129-
}
130-
rc = sqlite3_wal_autocheckpoint(db_backup, 0);
131-
if (rc != SQLITE_OK) {
132-
fprintf(stderr, "Can't disable checkpointing: %s\n", sqlite3_errmsg(db_backup));
133-
return 1;
134-
}
135-
rc = sqlite3_exec(db_backup, "PRAGMA journal_mode=WAL", NULL, NULL, NULL);
136-
if (rc != SQLITE_OK) {
137-
fprintf(stderr, "Can't set journal mode: %s\n", sqlite3_errmsg(db_backup));
138-
return 1;
139-
}
140-
138+
rc = open_db("backup.db", &db_backup);
141139
sync_db(db_primary, db_backup);
140+
142141
if (cmp_data(db_primary, db_backup)) {
143142
return 1;
144143
}

0 commit comments

Comments
 (0)