Skip to content

Commit 8d3f202

Browse files
committed
refactor: remove health-track schema and update db_init function for improved initialization
1 parent 6cce7fc commit 8d3f202

File tree

3 files changed

+39
-46
lines changed

3 files changed

+39
-46
lines changed

Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@ $(BUILD_TEST)/%.o: %.c
161161

162162
# Run code coverage (--css-file $(CUSTOM_CSS))
163163
test: $(TARGET) $(TEST_TARGET)
164-
sqlite3 health-track.sqlite < test/health-track-schema.sql
165164
$(SQLITE3) ":memory:" -cmd ".bail on" ".load ./$<" "SELECT cloudsync_version();"
166165
set -e; for t in $(TEST_TARGET); do ./$$t; done
167166
ifneq ($(COVERAGE),false)

test/health-track-schema.sql

Lines changed: 0 additions & 21 deletions
This file was deleted.

test/main.c

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <stdlib.h>
1111
#include "sqlite3.h"
1212

13+
#define PEERS 50
1314
#define DB_PATH "health-track.sqlite"
1415
#define EXT_PATH "./dist/cloudsync"
1516
#define ABORT_TEST abort_test: if (rc != SQLITE_OK) printf("Error: %s\n", sqlite3_errmsg(db)); if (db) sqlite3_close(db); return rc;
@@ -135,34 +136,41 @@ int db_init (const char *db_path){
135136
if (rc != SQLITE_OK) goto abort_test;
136137

137138
rc = db_exec(db, "\
138-
CREATE TABLE IF NOT EXISTS users (\
139-
id TEXT PRIMARY KEY NOT NULL,\
140-
name TEXT UNIQUE NOT NULL DEFAULT ''\
141-
);\
142-
CREATE TABLE IF NOT EXISTS activities (\
143-
id TEXT PRIMARY KEY NOT NULL,\
144-
user_id TEXT,\
145-
km REAL,\
146-
bpm INTEGER,\
147-
time TEXT,\
148-
activity_type TEXT NOT NULL DEFAULT 'running',\
149-
FOREIGN KEY(user_id) REFERENCES users(id)\
150-
);\
151-
CREATE TABLE IF NOT EXISTS workouts (\
152-
id TEXT PRIMARY KEY NOT NULL,\
153-
assigned_user_id TEXT,\
154-
day_of_week TEXT,\
155-
km REAL,\
156-
max_time TEXT\
157-
);");
139+
CREATE TABLE IF NOT EXISTS users (\
140+
id TEXT PRIMARY KEY NOT NULL,\
141+
name TEXT UNIQUE NOT NULL DEFAULT ''\
142+
);\
143+
CREATE TABLE IF NOT EXISTS activities (\
144+
id TEXT PRIMARY KEY NOT NULL,\
145+
user_id TEXT,\
146+
km REAL,\
147+
bpm INTEGER,\
148+
time TEXT,\
149+
activity_type TEXT NOT NULL DEFAULT 'running',\
150+
FOREIGN KEY(user_id) REFERENCES users(id)\
151+
);\
152+
CREATE TABLE IF NOT EXISTS workouts (\
153+
id TEXT PRIMARY KEY NOT NULL,\
154+
assigned_user_id TEXT,\
155+
day_of_week TEXT,\
156+
km REAL,\
157+
max_time TEXT\
158+
);\
159+
");
158160
if (rc != SQLITE_OK) goto abort_test;
159161

160162
ABORT_TEST
161163
}
162164

163-
int test_init (const char *db_path) {
165+
int test_init (const char *db_path, int init) {
166+
int rc = SQLITE_OK;
167+
168+
if(init){
169+
rc = db_init(db_path);
170+
}
171+
164172
sqlite3 *db = NULL;
165-
int rc = open_load_ext(db_path, &db);
173+
rc = open_load_ext(db_path, &db);
166174

167175
rc = db_exec(db, "SELECT cloudsync_init('users');"); if (rc != SQLITE_OK) goto abort_test;
168176
rc = db_exec(db, "SELECT cloudsync_init('activities');"); if (rc != SQLITE_OK) goto abort_test;
@@ -251,12 +259,19 @@ int main (void) {
251259
printf("===========================================\n");
252260
test_report("Version Test:", rc);
253261

254-
//rc += db_init(DB_PATH); // fix first the schema hash comparison
255-
rc += test_report("Init+Sync Test:", test_init(DB_PATH));
262+
rc += db_init(DB_PATH);
263+
rc += test_report("Init+Sync Test:", test_init(DB_PATH, 0));
256264
rc += test_report("Is Enabled Test:", test_is_enabled(DB_PATH));
257265
rc += test_report("DB Version Test:", test_db_version(DB_PATH));
258266
rc += test_report("Enable Disable Test:", test_enable_disable(DB_PATH));
259267

268+
for(int i=0; i<PEERS; i++){
269+
remove(DB_PATH); // clean previous db
270+
char description[32];
271+
snprintf(description, sizeof(description), "%d/%d Peer Test", i+1, PEERS);
272+
rc += test_report(description, test_init(DB_PATH, 1));
273+
}
274+
260275
remove(DB_PATH); // clean up the database file
261276
printf("\n");
262277
return rc;

0 commit comments

Comments
 (0)