tests: detect avatar BUSY ACK repeats with ACK counter
This commit is contained in:
1 parent
2a9a92cc34
commit
ec66a7e4f5
1 file changed
+4
-3
@@ -130,14 +130,15 @@ int main(void) {
|
||||
// Проверяем остановку доставки и повтор BUSY ACK, затем сразу переходим к restart.
|
||||
struct ETCP_ROUTER_CONN* sender = etcp_router_conn_get(nodes[0], GROUP, nodes[1]->node_id, ETCP_RT_ID_GROUP_AVATAR);
|
||||
struct ETCP_ROUTER_CONN* receiver = etcp_router_conn_get(nodes[1], GROUP, nodes[0]->node_id, ETCP_RT_ID_GROUP_AVATAR);
|
||||
uint64_t hold_started = get_time_tb(), first_busy_ack = 0;
|
||||
uint64_t hold_started = get_time_tb();
|
||||
uint32_t first_busy_ack = 0;
|
||||
int busy_repeated = 0;
|
||||
deadline = hold_started + 20000;
|
||||
while (get_time_tb() < deadline) {
|
||||
uasync_poll(ua, 2);
|
||||
if (!receiver->receive_blocked || !sender->peer_receive_blocked) continue;
|
||||
if (!first_busy_ack) first_busy_ack = sender->last_ack_changed_tb;
|
||||
else if (sender->last_ack_changed_tb != first_busy_ack) { busy_repeated = 1; break; }
|
||||
if (!first_busy_ack) first_busy_ack = sender->c_stale_ack;
|
||||
else if (sender->c_stale_ack != first_busy_ack) { busy_repeated = 1; break; }
|
||||
}
|
||||
if (!busy_repeated) DEBUG_ERROR(DEBUG_CATEGORY_CHAT, "test group avatar: BUSY ACK repeat missing blocked=%u peer_blocked=%u",
|
||||
receiver->receive_blocked, sender->peer_receive_blocked);
|
||||
|
||||
Reference in new issue
Block a user