Preserve member identity across attachment restart tests

This commit is contained in:
evgeny committed 2026-11-03 21:10:50 +01:00
1 parent 07f0ea6e14
commit 9a8814e2e6
1 file changed
+10 -3
+10 -3
View File
@@ -508,12 +508,19 @@ static void test_outgoing_restart(void) {
else f.send_rc = -1;
outgoing_tick(&f, 1, unavailable == 2);
struct snapshot saved = snapshot(&f);
uint64_t previous_node = f.inst->node_id;
char config[1536];
snprintf(config, sizeof(config), "[global]\ndb_path=%s\nmy_public_key=%s\nmy_private_key=%s\n[ntp]\nenabled=no\n"
"[chatserver]\ngroup_autoconnect=0\nstorage_autoload=0\n", f.directory,
f.inst->config->global.my_public_key_hex, f.inst->config->global.my_private_key_hex);
chat_event_set_handler(f.inst, NULL); active = NULL; utun_instance_destroy(f.inst);
char config[1024];
snprintf(config, sizeof(config), "[global]\ndb_path=%s\n[ntp]\nenabled=no\n"
"[chatserver]\ngroup_autoconnect=0\nstorage_autoload=0\n", f.directory);
f.inst = utun_instance_create_from_str(f.ua, config);
assert(f.inst && !utun_core_start(f.inst) && !chat_service_start(f.inst));
DEBUG_INFO(DEBUG_CATEGORY_MEDIA, "restart test: self=%016llx previous=%016llx admitted self=%d peer=%d",
(unsigned long long)f.inst->node_id, (unsigned long long)previous_node,
topo_node_sqlite_member_allowed(f.inst->topo_sqlite_db, f.channel, f.inst->node_id),
topo_node_sqlite_member_allowed(f.inst->topo_sqlite_db, f.channel, f.peer));
assert(f.inst->node_id == previous_node && topo_node_sqlite_member_allowed(f.inst->topo_sqlite_db, f.channel, previous_node));
f.route.inst = f.inst; f.route_up = f.room = 1; f.send_rc = 0; active = &f;
chat_event_set_handler(f.inst, event);
struct snapshot restored = snapshot(&f);