From 1ceb0beb8d22fcddb57ffdb8e45c009f2009aca1 Mon Sep 17 00:00:00 2001 From: evgeny Date: Thu, 22 Oct 2026 10:28:32 +0200 Subject: [PATCH] Check generated media identifiers in integration fixtures --- tests/test_media_delivery_chat.c | 5 +++-- tests/test_media_delivery_full.c | 9 ++++---- tests/test_media_index.c | 35 ++++++++++++++++---------------- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/tests/test_media_delivery_chat.c b/tests/test_media_delivery_chat.c index c21df6c6..2506d543 100644 --- a/tests/test_media_delivery_chat.c +++ b/tests/test_media_delivery_chat.c @@ -18,6 +18,7 @@ // поэтому связка «сообщение → auto-download» воспроизведена локальным insert-callback'ом. #include "media_delivery.h" +#include #include "media_delivery_proto.h" #include "media_download.h" #include "media_index.h" @@ -334,13 +335,13 @@ static int author_index_file(void) { struct media_index_result result; memset(&result, 0, sizeof(result)); media_index_init(g_inst[I_N1]->topo_sqlite_db); - media_index_generate_uuid(result.media_id); + assert(media_index_generate_uuid(result.media_id) == 0); memcpy(result.content_hash, g_content_hash, 32); result.file_size = MEDIA_FILE_SIZE; result.block_size = MEDIA_BLOCK_SIZE; result.num_blocks = MEDIA_NUM_BLOCKS; result.block_ids = u_malloc(MEDIA_NUM_BLOCKS * 16); result.block_sigs = u_malloc(MEDIA_NUM_BLOCKS * 64); for (int n = 0; n < MEDIA_NUM_BLOCKS; n++) { - media_index_generate_uuid(result.block_ids + n * 16); + assert(media_index_generate_uuid(result.block_ids + n * 16) == 0); int off = n * MEDIA_BLOCK_SIZE; int sz = (n == MEDIA_NUM_BLOCKS - 1) ? MEDIA_FILE_SIZE - off : MEDIA_BLOCK_SIZE; /* подпись блока = Ed25519(данные блока) — ровно как проверяет download */ diff --git a/tests/test_media_delivery_full.c b/tests/test_media_delivery_full.c index 89a933cb..2f0f302f 100644 --- a/tests/test_media_delivery_full.c +++ b/tests/test_media_delivery_full.c @@ -9,6 +9,7 @@ // B1: n1 создаёт файл → n2 инициирует загрузку → стриминг → сборка → проверка #include "media_delivery.h" +#include #include "media_delivery_proto.h" #include "media_download.h" #include "media_index.h" @@ -248,12 +249,12 @@ static int create_test_file(void) { media_index_init(g_inst[0]->topo_sqlite_db); struct media_index_result result; memset(&result, 0, sizeof(result)); - media_index_generate_uuid(result.media_id); + assert(media_index_generate_uuid(result.media_id) == 0); memcpy(result.content_hash, hash, 32); result.file_size = 10240; result.block_size = 5120; result.num_blocks = 2; result.block_ids = u_malloc(32); result.block_sigs = u_malloc(128); for (int i = 0; i < 2; i++) { - media_index_generate_uuid(result.block_ids + i * 16); + assert(media_index_generate_uuid(result.block_ids + i * 16) == 0); uint8_t smsg[5128]; size_t soff = 0; memcpy(smsg + soff, file_data + i * 5120, 5120); soff += 5120; uint64_t nid = g_nid[0]; memcpy(smsg + soff, &nid, 8); soff += 8; @@ -349,12 +350,12 @@ static int create_truncated_file(void) { EVP_DigestUpdate(ctx, file_data, FS); EVP_DigestFinal_ex(ctx, hash, NULL); EVP_MD_CTX_free(ctx); } struct media_index_result result; memset(&result, 0, sizeof(result)); - media_index_generate_uuid(result.media_id); + assert(media_index_generate_uuid(result.media_id) == 0); memcpy(result.content_hash, hash, 32); result.file_size = FS; result.block_size = BS; result.num_blocks = NB; result.block_ids = u_malloc(NB * 16); result.block_sigs = u_malloc(NB * 64); for (int i = 0; i < NB; i++) { - media_index_generate_uuid(result.block_ids + i * 16); + assert(media_index_generate_uuid(result.block_ids + i * 16) == 0); int sz = (i == NB - 1) ? FS - i * BS : BS; uint8_t smsg[5200]; size_t soff = 0; memcpy(smsg + soff, file_data + i * BS, sz); soff += (size_t)sz; diff --git a/tests/test_media_index.c b/tests/test_media_index.c index 34cf85dd..2dfc7b20 100644 --- a/tests/test_media_index.c +++ b/tests/test_media_index.c @@ -13,6 +13,7 @@ // 10. Полный async flow (register_async + copy=1) #include "../src/media_delivery/media_index.h" +#include #include "../src/media_async/media_async.h" #include "../lib/u_async.h" #include "../lib/mem.h" @@ -94,17 +95,17 @@ static void fill_result(struct media_index_result* r, int64_t file_size, int64_t r->file_size = file_size; r->block_size = block_size; r->num_blocks = num_blocks; - ma_uuid(r->media_id); - ma_uuid(r->content_hash); - ma_uuid(r->content_hash + 16); + assert(ma_uuid(r->media_id) == 0); + assert(ma_uuid(r->content_hash) == 0); + assert(ma_uuid(r->content_hash + 16) == 0); r->block_ids = u_malloc((size_t)num_blocks * 16); r->block_sigs = u_malloc((size_t)num_blocks * 64); for (int i = 0; i < num_blocks; i++) { - ma_uuid(r->block_ids + i * 16); - ma_uuid(r->block_sigs + i * 64); - ma_uuid(r->block_sigs + i * 64 + 16); - ma_uuid(r->block_sigs + i * 64 + 32); - ma_uuid(r->block_sigs + i * 64 + 48); + assert(ma_uuid(r->block_ids + i * 16) == 0); + assert(ma_uuid(r->block_sigs + i * 64) == 0); + assert(ma_uuid(r->block_sigs + i * 64 + 16) == 0); + assert(ma_uuid(r->block_sigs + i * 64 + 32) == 0); + assert(ma_uuid(r->block_sigs + i * 64 + 48) == 0); } } @@ -177,7 +178,7 @@ static int test_single_chunk(void) { sqlite3* db = make_db(); media_index_init(db); uint8_t priv[32], pub[32]; - ma_uuid(priv); ma_uuid(priv + 16); + assert(ma_uuid(priv) == 0); assert(ma_uuid(priv + 16) == 0); derive_pubkey(priv, pub); struct media_index_result r; @@ -203,7 +204,7 @@ static int test_exact_multiple(void) { sqlite3* db = make_db(); media_index_init(db); uint8_t priv[32], pub[32]; - ma_uuid(priv); ma_uuid(priv + 16); derive_pubkey(priv, pub); + assert(ma_uuid(priv) == 0); assert(ma_uuid(priv + 16) == 0); derive_pubkey(priv, pub); struct media_index_result r; fill_result(&r, 300, 100, 3); @@ -229,7 +230,7 @@ static int test_partial_last(void) { sqlite3* db = make_db(); media_index_init(db); uint8_t priv[32], pub[32]; - ma_uuid(priv); ma_uuid(priv + 16); derive_pubkey(priv, pub); + assert(ma_uuid(priv) == 0); assert(ma_uuid(priv + 16) == 0); derive_pubkey(priv, pub); struct media_index_result r; fill_result(&r, 250, 100, 3); @@ -255,7 +256,7 @@ static int test_file_smaller_than_block(void) { sqlite3* db = make_db(); media_index_init(db); uint8_t priv[32], pub[32]; - ma_uuid(priv); ma_uuid(priv + 16); derive_pubkey(priv, pub); + assert(ma_uuid(priv) == 0); assert(ma_uuid(priv + 16) == 0); derive_pubkey(priv, pub); struct media_index_result r; fill_result(&r, 50, 100, 1); @@ -277,7 +278,7 @@ static int test_many_chunks(void) { sqlite3* db = make_db(); media_index_init(db); uint8_t priv[32], pub[32]; - ma_uuid(priv); ma_uuid(priv + 16); derive_pubkey(priv, pub); + assert(ma_uuid(priv) == 0); assert(ma_uuid(priv + 16) == 0); derive_pubkey(priv, pub); struct media_index_result r; fill_result(&r, 800, 100, 8); @@ -310,7 +311,7 @@ static int test_location_trailing_slash(void) { sqlite3* db = make_db(); media_index_init(db); uint8_t priv[32], pub[32]; - ma_uuid(priv); ma_uuid(priv + 16); derive_pubkey(priv, pub); + assert(ma_uuid(priv) == 0); assert(ma_uuid(priv + 16) == 0); derive_pubkey(priv, pub); struct media_index_result r; fill_result(&r, 100, 100, 1); @@ -330,7 +331,7 @@ static int test_location_no_slash(void) { sqlite3* db = make_db(); media_index_init(db); uint8_t priv[32], pub[32]; - ma_uuid(priv); ma_uuid(priv + 16); derive_pubkey(priv, pub); + assert(ma_uuid(priv) == 0); assert(ma_uuid(priv + 16) == 0); derive_pubkey(priv, pub); struct media_index_result r; fill_result(&r, 100, 100, 1); @@ -350,7 +351,7 @@ static int test_different_chat_ids(void) { sqlite3* db = make_db(); media_index_init(db); uint8_t priv[32], pub[32]; - ma_uuid(priv); ma_uuid(priv + 16); derive_pubkey(priv, pub); + assert(ma_uuid(priv) == 0); assert(ma_uuid(priv + 16) == 0); derive_pubkey(priv, pub); struct media_index_result r1, r2; fill_result(&r1, 100, 100, 1); @@ -442,7 +443,7 @@ static int test_register_async_flow(void) { media_index_init(db); uint8_t priv[32], pub[32]; - ma_uuid(priv); ma_uuid(priv + 16); derive_pubkey(priv, pub); + assert(ma_uuid(priv) == 0); assert(ma_uuid(priv + 16) == 0); derive_pubkey(priv, pub); media_index_register_async(ma, ua, db, 0xCAFE, priv, "ch_test", src, dst, 1, tempd, on_registered, &ctx);