Isolate packet loss fixtures between call policy scenarios
This commit is contained in:
1 parent
babcb7786a
commit
5a318f6f60
2 files changed
+4
-1
No files matched your search
@@ -872,6 +872,7 @@ static void call_tick(void* arg) {
|
|||||||
break;
|
break;
|
||||||
case P_POLICY_START: {
|
case P_POLICY_START: {
|
||||||
DEBUG_INFO(DEBUG_CATEGORY_CALL, "phone policy starting scenario=%d", t->policy_index);
|
DEBUG_INFO(DEBUG_CATEGORY_CALL, "phone policy starting scenario=%d", t->policy_index);
|
||||||
|
g_drop_acks[IDX_A] = g_drop_acks[IDX_B] = 0;
|
||||||
static const struct { int state; unsigned policy; } policies[] = {
|
static const struct { int state; unsigned policy; } policies[] = {
|
||||||
{0, CALL_POLICY_WARN_PHONE}, {2, CALL_POLICY_PUBLISH_PHONE}, {2, CALL_POLICY_WARN_PHONE},
|
{0, CALL_POLICY_WARN_PHONE}, {2, CALL_POLICY_PUBLISH_PHONE}, {2, CALL_POLICY_WARN_PHONE},
|
||||||
{2, CALL_POLICY_WARN_PHONE}, {2, CALL_POLICY_WARN_PHONE | CALL_POLICY_REJECT_PHONE},
|
{2, CALL_POLICY_WARN_PHONE}, {2, CALL_POLICY_WARN_PHONE | CALL_POLICY_REJECT_PHONE},
|
||||||
|
|||||||
+3
-1
@@ -126,7 +126,7 @@ static void call_packet_loss(struct ETCP_CONN* conn, struct ll_entry* entry) {
|
|||||||
int cmd = entry->dgram[ROUTER_SVC_PAYLOAD_OFF];
|
int cmd = entry->dgram[ROUTER_SVC_PAYLOAD_OFF];
|
||||||
if ((idx == IDX_A && cmd == 3 && g_drop_result-- > 0) || (idx == IDX_C && cmd == 4 && g_drop_ack-- > 0) ||
|
if ((idx == IDX_A && cmd == 3 && g_drop_result-- > 0) || (idx == IDX_C && cmd == 4 && g_drop_ack-- > 0) ||
|
||||||
(idx == IDX_C && cmd == 6 && g_drop_force-- > 0)) {
|
(idx == IDX_C && cmd == 6 && g_drop_force-- > 0)) {
|
||||||
DEBUG_INFO(DEBUG_CATEGORY_RADIO, "test drops radio result/ACK dst=%d command=%d", idx, cmd);
|
DEBUG_INFO(DEBUG_CATEGORY_RADIO, "test drops radio signaling dst=%d command=%d", idx, cmd);
|
||||||
queue_dgram_free(entry); queue_entry_free(entry); return;
|
queue_dgram_free(entry); queue_entry_free(entry); return;
|
||||||
}
|
}
|
||||||
g_call_recv[idx](conn, entry);
|
g_call_recv[idx](conn, entry);
|
||||||
@@ -603,6 +603,8 @@ static void rad_tick(void* arg) {
|
|||||||
t->result = 2; uasync_stop(t->ua); return;
|
t->result = 2; uasync_stop(t->ua); return;
|
||||||
}
|
}
|
||||||
DEBUG_INFO(DEBUG_CATEGORY_RADIO, "test radio calls passed: 2s/60s, accept/decline/cancel/busy, lost result/ACK, idle has no timer");
|
DEBUG_INFO(DEBUG_CATEGORY_RADIO, "test radio calls passed: 2s/60s, accept/decline/cancel/busy, lost result/ACK, idle has no timer");
|
||||||
|
// Проверка idle пересоздала сервис и его binding; снова включаем потерю пакетов приложения.
|
||||||
|
for (int i = 0; i < 3; ++i) t->inst[i]->router_bindings.callbacks[ETCP_RT_ID_RADIO_CALL] = call_packet_loss;
|
||||||
call_set_phone_state(C, 2, CALL_POLICY_WARN_PHONE);
|
call_set_phone_state(C, 2, CALL_POLICY_WARN_PHONE);
|
||||||
radio_action(A, 108, RADIO_CALL_START, nc); ++t->call_step;
|
radio_action(A, 108, RADIO_CALL_START, nc); ++t->call_step;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user