Skip to content

Commit ca54200

Browse files
committed
Fix extension tests for local-only builds
1 parent 4571a61 commit ca54200

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

test/unittest.c

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2610,6 +2610,7 @@ static void tracking_free(void *engine, void *xdata) {
26102610
free(engine);
26112611
}
26122612

2613+
#ifndef DBMEM_OMIT_REMOTE_ENGINE
26132614
TEST(sqlite_set_model_releases_previous_engine_on_class_switch) {
26142615
sqlite3 *db = open_test_db();
26152616
ASSERT(db != NULL);
@@ -2639,6 +2640,37 @@ TEST(sqlite_set_model_releases_previous_engine_on_class_switch) {
26392640
sqlite3_close(db);
26402641
ASSERT_EQ(state.free_count, 1);
26412642
}
2643+
#else
2644+
TEST(sqlite_set_model_failed_remote_switch_keeps_custom_engine) {
2645+
sqlite3 *db = open_test_db();
2646+
ASSERT(db != NULL);
2647+
2648+
sqlite3_int64 result = 0;
2649+
int rc = exec_get_int(db, "SELECT memory_set_apikey('test-key');", &result);
2650+
ASSERT_EQ(rc, SQLITE_OK);
2651+
2652+
tracking_free_state_t state = {0};
2653+
dbmem_provider_t prov = { .init = tracking_init, .compute = tracking_compute, .free = tracking_free, .xdata = &state };
2654+
rc = sqlite3_memory_register_provider(db, "tracker", &prov);
2655+
ASSERT_EQ(rc, SQLITE_OK);
2656+
2657+
rc = exec_get_int(db, "SELECT memory_set_model('tracker', 'm1');", &result);
2658+
ASSERT_EQ(rc, SQLITE_OK);
2659+
ASSERT_EQ(state.free_count, 0);
2660+
2661+
sqlite3_stmt *stmt = NULL;
2662+
rc = sqlite3_prepare_v2(db, "SELECT memory_set_model('openai', 'text-embedding-3-small');", -1, &stmt, NULL);
2663+
ASSERT_EQ(rc, SQLITE_OK);
2664+
rc = sqlite3_step(stmt);
2665+
ASSERT_EQ(rc, SQLITE_ERROR);
2666+
sqlite3_finalize(stmt);
2667+
2668+
ASSERT_EQ(state.free_count, 0);
2669+
2670+
sqlite3_close(db);
2671+
ASSERT_EQ(state.free_count, 1);
2672+
}
2673+
#endif
26422674

26432675
#endif // TEST_SQLITE_EXTENSION
26442676

@@ -2779,7 +2811,11 @@ int main(int argc, char *argv[]) {
27792811
RUN_TEST(sqlite_custom_provider_init_error);
27802812
RUN_TEST(sqlite_custom_provider_apikey_passed);
27812813
RUN_TEST(sqlite_set_model_failed_reindex_preserves_existing_rows);
2814+
#ifndef DBMEM_OMIT_REMOTE_ENGINE
27822815
RUN_TEST(sqlite_set_model_releases_previous_engine_on_class_switch);
2816+
#else
2817+
RUN_TEST(sqlite_set_model_failed_remote_switch_keeps_custom_engine);
2818+
#endif
27832819
#endif
27842820

27852821
printf("\n=== Results ===\n");

0 commit comments

Comments
 (0)