Browse Source

Stop DM test event loops promptly on scenario failure

master
evgeny 1 day ago
parent
commit
c63343cf2b
  1. 7
      tests/test_dm_e2e.c

7
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;

Loading…
Cancel
Save