Check generated media identifiers in integration fixtures
This commit is contained in:
1 parent
386ea85fea
commit
1ceb0beb8d
3 files changed
+26
-23
No files matched your search
@@ -18,6 +18,7 @@
|
||||
// поэтому связка «сообщение → auto-download» воспроизведена локальным insert-callback'ом.
|
||||
|
||||
#include "media_delivery.h"
|
||||
#include <assert.h>
|
||||
#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 */
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
// B1: n1 создаёт файл → n2 инициирует загрузку → стриминг → сборка → проверка
|
||||
|
||||
#include "media_delivery.h"
|
||||
#include <assert.h>
|
||||
#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;
|
||||
|
||||
+18
-17
@@ -13,6 +13,7 @@
|
||||
// 10. Полный async flow (register_async + copy=1)
|
||||
|
||||
#include "../src/media_delivery/media_index.h"
|
||||
#include <assert.h>
|
||||
#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);
|
||||
|
||||
Reference in new issue
Block a user