Skip to content

Commit 5fd47e7

Browse files
committed
add more tests
Signed-off-by: Somtochi Onyekwere <[email protected]>
1 parent 31c4705 commit 5fd47e7

File tree

2 files changed

+34
-22
lines changed

2 files changed

+34
-22
lines changed

core/rs/integration_check/src/t/tableinfo.rs

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use alloc::vec::Vec;
66
use core::{ffi::c_char, mem};
77
use crsql_bundle::test_exports;
88
use crsql_bundle::test_exports::tableinfo::TableInfo;
9-
use sqlite::Connection;
9+
use sqlite::{Connection, ResultCode};
1010
use sqlite_nostd as sqlite;
1111

1212
// Unfortunate circumstance that we still have some C code that requires this argument
@@ -360,11 +360,44 @@ fn test_leak_condition() {
360360
.expect("inserted into foo");
361361
}
362362

363+
fn test_site_id_initialization() {
364+
{
365+
let db = crate::opendb().expect("Opened DB");
366+
let raw_db = db.db.db;
367+
let site_id = select_site_id(raw_db).expect("selected site id");
368+
assert_eq!(site_id.len(), 16);
369+
raw_db.exec_safe("DELETE FROM crsql_site_id;").expect("deleted site id");
370+
}
371+
372+
{
373+
let db = crate::opendb().expect("Opened DB");
374+
let raw_db = db.db.db;
375+
let site_id = select_site_id(raw_db).expect("selected site id");
376+
assert_eq!(site_id.len(), 16);
377+
raw_db.exec_safe("DROP TABLE crsql_site_id;").expect("dropped crsql_site_id");
378+
}
379+
380+
{
381+
let db = crate::opendb().expect("Opened DB");
382+
let raw_db = db.db.db;
383+
let site_id = select_site_id(raw_db).expect("selected site id");
384+
assert_eq!(site_id.len(), 16);
385+
}
386+
}
387+
388+
fn select_site_id(db: *mut sqlite::sqlite3) -> Result<Vec<u8>, ResultCode> {
389+
let site_id_stmt = db.prepare_v2("SELECT crsql_site_id()")?;
390+
site_id_stmt.step()?;
391+
let site_id = site_id_stmt.column_blob(0)?.to_vec();
392+
Ok(site_id)
393+
}
394+
363395
pub fn run_suite() {
364396
libc_print::libc_println!("Running tableinfo suite");
365397
test_ensure_table_infos_are_up_to_date();
366398
test_pull_table_info();
367399
test_is_table_compatible();
368400
test_create_clock_table_from_table_info();
369401
test_leak_condition();
402+
test_site_id_initialization();
370403
}

core/src/ext-data.test.c

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -54,26 +54,6 @@ static void textNewExtData() {
5454
printf("\t\e[0;32mSuccess\e[0m\n");
5555
}
5656

57-
static void testAllocateExtData() {
58-
printf("AllocateExtData\n");
59-
sqlite3 *db;
60-
int rc = SQLITE_OK;
61-
rc = sqlite3_open(":memory:", &db);
62-
assert(rc == SQLITE_OK);
63-
unsigned char *siteIdBuffer =
64-
sqlite3_malloc(SITE_ID_LEN * sizeof *(siteIdBuffer));
65-
66-
crsql_ExtData *pExtData = crsqlExtDataInit(db, siteIdBuffer);
67-
// ordinal map allocated to an empty map
68-
assert(pExtData->ordinalMap != 0);
69-
70-
// crsql_finalize(pExtData);
71-
// crsql_freeExtData(pExtData);
72-
crsql_close(db);
73-
printf("\t\e[0;32mSuccess\e[0m\n");
74-
}
75-
76-
7757
// valgrind will let us know if we failed to free something
7858
// mainly testing that we can finalize + free without error
7959
static void testFreeExtData() {
@@ -244,5 +224,4 @@ void crsqlExtDataTestSuite() {
244224
testFinalize();
245225
testFetchPragmaSchemaVersion();
246226
testFetchPragmaDataVersion();
247-
testAllocateExtData();
248227
}

0 commit comments

Comments
 (0)