test: make content_gen emit meta with each chunk

Which will also contain total content size, to increase this tool's
utility.
This commit is contained in:
Andrew Mayorov 2023-03-02 18:53:19 +03:00 committed by Ilya Averyanov
parent 788e76ed2d
commit e9f98adca2
2 changed files with 7 additions and 4 deletions

View File

@ -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,

View File

@ -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