tests: wait for READY group routes before measuring NAT

This commit is contained in:
evgeny committed 2026-10-17 15:56:19 +02:00
1 parent 110dd82932
commit 3cb971fcba
2 files changed
+10 -1

No files matched your search

+3 -1
View File
@@ -25,8 +25,10 @@ def check_profiles(scenario):
snapshot = agents[target.name].rpc("snapshot")["snapshot"] snapshot = agents[target.name].rpc("snapshot")["snapshot"]
agents[source.name].rpc("nat_link", snapshot=snapshot, socket=transport) agents[source.name].rpc("nat_link", snapshot=snapshot, socket=transport)
target_id = agents[target.name].identity target_id = agents[target.name].identity
source_id = agents[source.name].identity
scenario.wait(f"nat-link-{source.name}-{target.name}", scenario.wait(f"nat-link-{source.name}-{target.name}",
lambda data: target_id in data[source.name]["direct_up"], 20) lambda data: target_id in data[source.name]["group_ready"] and
source_id in data[target.name]["group_ready"], 20)
connected.add(pair) connected.add(pair)
def store_owner(owner, observer): def store_owner(owner, observer):
+7
View File
@@ -224,6 +224,13 @@ static void statistics(struct lab *lab, uint64_t id, int loads) {
if (connection && connection->links_up && !connection->close_requested && connection->state != 2) if (connection && connection->links_up && !connection->close_requested && connection->state != 2)
printf("%s\"%" PRIu64 "\"", separator++ ? "," : "", connection->peer_node_id); printf("%s\"%" PRIu64 "\"", separator++ ? "," : "", connection->peer_node_id);
} }
printf("],\"group_ready\":["); separator = 0;
struct TOPO_GROUP *nat_group = topo_groups_find(lab->inst->topo_groups, TOPO_GROUP_UTUN);
for (struct ll_entry *entry = nat_group ? nat_group->nodes->head : NULL; entry; entry = entry->next) {
uint64_t peer = ((struct TOPO_GROUP_NODE *)entry)->node_id;
if (peer != lab->inst->node_id && topo_group_peer_ready(nat_group, peer))
printf("%s\"%" PRIu64 "\"", separator++ ? "," : "", peer);
}
printf("],\"streams\":["); separator = 0; printf("],\"streams\":["); separator = 0;
for (unsigned i = 0; i < LAB_STREAMS; i++) { for (unsigned i = 0; i < LAB_STREAMS; i++) {
struct lab_stream *stream = &lab->streams[i]; struct lab_stream *stream = &lab->streams[i];