From e9f98adca26b9cb13366bfadc6ddfde7337d8f1b Mon Sep 17 00:00:00 2001 From: Andrew Mayorov Date: Thu, 2 Mar 2023 18:53:19 +0300 Subject: [PATCH] test: make content_gen emit meta with each chunk Which will also contain total content size, to increase this tool's utility. --- apps/emqx_ft/test/emqx_ft_assembler_SUITE.erl | 2 +- apps/emqx_ft/test/emqx_ft_content_gen.erl | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/emqx_ft/test/emqx_ft_assembler_SUITE.erl b/apps/emqx_ft/test/emqx_ft_assembler_SUITE.erl index a896922d1..8df471deb 100644 --- a/apps/emqx_ft/test/emqx_ft_assembler_SUITE.erl +++ b/apps/emqx_ft/test/emqx_ft_assembler_SUITE.erl @@ -109,7 +109,7 @@ t_assemble_complete_local_transfer(Config) -> ok = emqx_ft_storage_fs:store_filemeta(Storage, Transfer, Meta), _ = emqx_ft_content_gen:consume( Gen, - fun({Content, SegmentNum, _SegmentCount}) -> + fun({Content, SegmentNum, _Meta}) -> Offset = (SegmentNum - 1) * SegmentSize, ?assertEqual( ok, diff --git a/apps/emqx_ft/test/emqx_ft_content_gen.erl b/apps/emqx_ft/test/emqx_ft_content_gen.erl index bd24d8c94..286c1a588 100644 --- a/apps/emqx_ft/test/emqx_ft_content_gen.erl +++ b/apps/emqx_ft/test/emqx_ft_content_gen.erl @@ -42,7 +42,7 @@ -type payload() :: {Seed :: term(), Size :: integer()}. -type binary_payload() :: { - binary(), _ChunkNum :: non_neg_integer(), _ChunkCnt :: non_neg_integer() + binary(), _ChunkNum :: non_neg_integer(), _Meta :: #{} }. -type cont(Data) :: @@ -200,7 +200,10 @@ generate_chunk(Seed, Offset, ChunkSize, Size) -> || I <- lists:seq(Offset div 16, To div 16) ]), ChunkNum = Offset div ChunkSize + 1, - ChunkCnt = ceil(Size / ChunkSize), + Meta = #{ + chunk_size => ChunkSize, + chunk_count => ceil(Size / ChunkSize) + }, Chunk = case Offset + ChunkSize of NextOffset when NextOffset > Size -> @@ -208,7 +211,7 @@ generate_chunk(Seed, Offset, ChunkSize, Size) -> _ -> Payload end, - {Chunk, ChunkNum, ChunkCnt}. + {Chunk, ChunkNum, Meta}. %% @doc First argument is a chunk number, the second one is a seed. %% This implementation is hardly efficient, but it was chosen for