From c63343cf2b27deb662b7dc5f47dc1f1fddf46df5 Mon Sep 17 00:00:00 2001 From: evgeny Date: Thu, 1 Oct 2026 14:51:37 +0300 Subject: [PATCH] Stop DM test event loops promptly on scenario failure --- tests/test_dm_e2e.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/test_dm_e2e.c b/tests/test_dm_e2e.c index a41bd947..dfffa98c 100644 --- a/tests/test_dm_e2e.c +++ b/tests/test_dm_e2e.c @@ -189,6 +189,7 @@ static void write_configs(const char* dir) { /* ── чистые проверки (без опроса) ── */ static int conn_up(struct UTUN_INSTANCE* inst, uint64_t nid) { + if (!inst) return 0; struct ETCP_CONN* c = instance_find_conn(inst, nid); return c && c->initialized && c->links_up; } @@ -517,12 +518,13 @@ static void dm_tick(void* arg) { return; } + if (t->result) { uasync_stop(t->ua); return; } if (t->phase == P_DONE) { t->result = 1; uasync_stop(t->ua); return; } if (++t->ticks > MAX_TICKS) { fprintf(stderr, "test: timeout in phase %d (A_conn=%d C_conn=%d B_conn=%d)\n", (int)t->phase, - conn_up(A, nc), conn_up(C, na), B ? conn_up(B, nc) : -1); + conn_up(t->inst[IDX_A], nc), conn_up(t->inst[IDX_C], na), conn_up(t->inst[IDX_B], nc)); t->result = 2; uasync_stop(t->ua); return; @@ -635,12 +637,13 @@ static void dm2_tick(void* arg) { return; } + if (t->result) { uasync_stop(t->ua); return; } if (t->phase == S2_DONE) { t->result = 1; uasync_stop(t->ua); return; } if (++t->ticks > MAX_TICKS) { fprintf(stderr, "s2: timeout in phase %d (A_conn=%d C_conn=%d B_conn=%d)\n", (int)t->phase, - conn_up(A, nc), conn_up(C, na), B ? conn_up(B, nc) : -1); + conn_up(t->inst[IDX_A], nc), conn_up(t->inst[IDX_C], na), conn_up(t->inst[IDX_B], nc)); t->result = 2; uasync_stop(t->ua); return;