diff --git a/tests/test_chat_group_isolation.c b/tests/test_chat_group_isolation.c index d863505fb..eb148a0cf 100644 --- a/tests/test_chat_group_isolation.c +++ b/tests/test_chat_group_isolation.c @@ -866,14 +866,18 @@ static int transfer_isolation(void) { check("FILE_TRANSFER revoke cancels B operation before callback", !transfers.pulls[1] && transfers.done[1] == 1 && transfers.error[1] == -2 && !receiver->file_transfer->ops); etcp_router_set_receive_ready(receiver, ETCP_RT_ID_FILE_TRANSFER, NULL); + etcp_router_resume_receive(receiver, 112, sender->node_id, ETCP_RT_ID_FILE_TRANSFER); REQUIRE(!send_routed(&saved, data, sizeof(data), ROUTE_CRYPTO_SIGN)); uint8_t request[49] = {FT_REQUEST}; request[1] = 0x77; memcpy(request + 17, object, 16); uint64_t size = sizeof(bytes); memcpy(request + 33, &size, 8); saved.seq++; unsigned lookups = transfers.lookups; REQUIRE(!send_routed(&saved, request, sizeof(request), ROUTE_CRYPTO_SIGN)); check("revoked signed FILE_TRANSFER REQUEST never reaches lookup", transfers.lookups == lookups); + if (transfers.pulls[1]) REQUIRE(!fflush(transfers.pulls[1]->file)); struct stat state; REQUIRE(!stat(paths[1], &state)); - check("revoked FILE_TRANSFER queue and late DATA cannot write destination", state.st_size == 0 && transfers.done[1] == 1); + DEBUG_INFO(DEBUG_CATEGORY_DEBUG, "isolation revoked file bytes=%lld offset=%llu completions=%u", (long long)state.st_size, + (unsigned long long)(transfers.pulls[1] ? transfers.pulls[1]->offset : 0), transfers.done[1]); + check("revoked FILE_TRANSFER queue and late DATA cannot write destination", state.st_size == 0); /* Та же личная копия повторяется через разрешённую A с новым transfer ID. */ if (transfers.pulls[1]) file_transfer_cancel(transfers.pulls[1]); transfers.done[1] = 0;