|
@@ -2,7 +2,7 @@
|
|
|
%% Copyright (c) 2024 EMQ Technologies Co., Ltd. All Rights Reserved.
|
|
%% Copyright (c) 2024 EMQ Technologies Co., Ltd. All Rights Reserved.
|
|
|
%%--------------------------------------------------------------------
|
|
%%--------------------------------------------------------------------
|
|
|
|
|
|
|
|
--module(emqx_bridge_s3_aggreg_buffer_SUITE).
|
|
|
|
|
|
|
+-module(emqx_connector_aggreg_buffer_SUITE).
|
|
|
|
|
|
|
|
-compile(nowarn_export_all).
|
|
-compile(nowarn_export_all).
|
|
|
-compile(export_all).
|
|
-compile(export_all).
|
|
@@ -29,7 +29,7 @@ t_write_read_cycle(Config) ->
|
|
|
Filename = mk_filename(?FUNCTION_NAME, Config),
|
|
Filename = mk_filename(?FUNCTION_NAME, Config),
|
|
|
Metadata = {?MODULE, #{tc => ?FUNCTION_NAME}},
|
|
Metadata = {?MODULE, #{tc => ?FUNCTION_NAME}},
|
|
|
{ok, WFD} = file:open(Filename, [write, binary]),
|
|
{ok, WFD} = file:open(Filename, [write, binary]),
|
|
|
- Writer = emqx_bridge_s3_aggreg_buffer:new_writer(WFD, Metadata),
|
|
|
|
|
|
|
+ Writer = emqx_connector_aggreg_buffer:new_writer(WFD, Metadata),
|
|
|
Terms = [
|
|
Terms = [
|
|
|
[],
|
|
[],
|
|
|
[[[[[[[[]]]]]]]],
|
|
[[[[[[[[]]]]]]]],
|
|
@@ -43,12 +43,12 @@ t_write_read_cycle(Config) ->
|
|
|
{<<"application/json">>, emqx_utils_json:encode(#{j => <<"son">>, null => null})}
|
|
{<<"application/json">>, emqx_utils_json:encode(#{j => <<"son">>, null => null})}
|
|
|
],
|
|
],
|
|
|
ok = lists:foreach(
|
|
ok = lists:foreach(
|
|
|
- fun(T) -> ?assertEqual(ok, emqx_bridge_s3_aggreg_buffer:write(T, Writer)) end,
|
|
|
|
|
|
|
+ fun(T) -> ?assertEqual(ok, emqx_connector_aggreg_buffer:write(T, Writer)) end,
|
|
|
Terms
|
|
Terms
|
|
|
),
|
|
),
|
|
|
ok = file:close(WFD),
|
|
ok = file:close(WFD),
|
|
|
{ok, RFD} = file:open(Filename, [read, binary, raw]),
|
|
{ok, RFD} = file:open(Filename, [read, binary, raw]),
|
|
|
- {MetadataRead, Reader} = emqx_bridge_s3_aggreg_buffer:new_reader(RFD),
|
|
|
|
|
|
|
+ {MetadataRead, Reader} = emqx_connector_aggreg_buffer:new_reader(RFD),
|
|
|
?assertEqual(Metadata, MetadataRead),
|
|
?assertEqual(Metadata, MetadataRead),
|
|
|
TermsRead = read_until_eof(Reader),
|
|
TermsRead = read_until_eof(Reader),
|
|
|
?assertEqual(Terms, TermsRead).
|
|
?assertEqual(Terms, TermsRead).
|
|
@@ -60,7 +60,7 @@ t_read_empty(Config) ->
|
|
|
{ok, RFD} = file:open(Filename, [read, binary]),
|
|
{ok, RFD} = file:open(Filename, [read, binary]),
|
|
|
?assertError(
|
|
?assertError(
|
|
|
{buffer_incomplete, header},
|
|
{buffer_incomplete, header},
|
|
|
- emqx_bridge_s3_aggreg_buffer:new_reader(RFD)
|
|
|
|
|
|
|
+ emqx_connector_aggreg_buffer:new_reader(RFD)
|
|
|
).
|
|
).
|
|
|
|
|
|
|
|
t_read_garbage(Config) ->
|
|
t_read_garbage(Config) ->
|
|
@@ -71,14 +71,14 @@ t_read_garbage(Config) ->
|
|
|
{ok, RFD} = file:open(Filename, [read, binary]),
|
|
{ok, RFD} = file:open(Filename, [read, binary]),
|
|
|
?assertError(
|
|
?assertError(
|
|
|
badarg,
|
|
badarg,
|
|
|
- emqx_bridge_s3_aggreg_buffer:new_reader(RFD)
|
|
|
|
|
|
|
+ emqx_connector_aggreg_buffer:new_reader(RFD)
|
|
|
).
|
|
).
|
|
|
|
|
|
|
|
t_read_truncated(Config) ->
|
|
t_read_truncated(Config) ->
|
|
|
Filename = mk_filename(?FUNCTION_NAME, Config),
|
|
Filename = mk_filename(?FUNCTION_NAME, Config),
|
|
|
{ok, WFD} = file:open(Filename, [write, binary]),
|
|
{ok, WFD} = file:open(Filename, [write, binary]),
|
|
|
Metadata = {?MODULE, #{tc => ?FUNCTION_NAME}},
|
|
Metadata = {?MODULE, #{tc => ?FUNCTION_NAME}},
|
|
|
- Writer = emqx_bridge_s3_aggreg_buffer:new_writer(WFD, Metadata),
|
|
|
|
|
|
|
+ Writer = emqx_connector_aggreg_buffer:new_writer(WFD, Metadata),
|
|
|
Terms = [
|
|
Terms = [
|
|
|
[[[[[[[[[[[]]]]]]]]]]],
|
|
[[[[[[[[[[[]]]]]]]]]]],
|
|
|
lists:seq(1, 100000),
|
|
lists:seq(1, 100000),
|
|
@@ -88,36 +88,36 @@ t_read_truncated(Config) ->
|
|
|
LastTerm =
|
|
LastTerm =
|
|
|
{<<"application/json">>, emqx_utils_json:encode(#{j => <<"son">>, null => null})},
|
|
{<<"application/json">>, emqx_utils_json:encode(#{j => <<"son">>, null => null})},
|
|
|
ok = lists:foreach(
|
|
ok = lists:foreach(
|
|
|
- fun(T) -> ?assertEqual(ok, emqx_bridge_s3_aggreg_buffer:write(T, Writer)) end,
|
|
|
|
|
|
|
+ fun(T) -> ?assertEqual(ok, emqx_connector_aggreg_buffer:write(T, Writer)) end,
|
|
|
Terms
|
|
Terms
|
|
|
),
|
|
),
|
|
|
{ok, WPos} = file:position(WFD, cur),
|
|
{ok, WPos} = file:position(WFD, cur),
|
|
|
- ?assertEqual(ok, emqx_bridge_s3_aggreg_buffer:write(LastTerm, Writer)),
|
|
|
|
|
|
|
+ ?assertEqual(ok, emqx_connector_aggreg_buffer:write(LastTerm, Writer)),
|
|
|
ok = file:close(WFD),
|
|
ok = file:close(WFD),
|
|
|
- ok = emqx_bridge_s3_test_helpers:truncate_at(Filename, WPos + 1),
|
|
|
|
|
|
|
+ ok = emqx_connector_aggregator_test_helpers:truncate_at(Filename, WPos + 1),
|
|
|
{ok, RFD1} = file:open(Filename, [read, binary]),
|
|
{ok, RFD1} = file:open(Filename, [read, binary]),
|
|
|
- {Metadata, Reader0} = emqx_bridge_s3_aggreg_buffer:new_reader(RFD1),
|
|
|
|
|
|
|
+ {Metadata, Reader0} = emqx_connector_aggreg_buffer:new_reader(RFD1),
|
|
|
{ReadTerms1, Reader1} = read_terms(length(Terms), Reader0),
|
|
{ReadTerms1, Reader1} = read_terms(length(Terms), Reader0),
|
|
|
?assertEqual(Terms, ReadTerms1),
|
|
?assertEqual(Terms, ReadTerms1),
|
|
|
?assertError(
|
|
?assertError(
|
|
|
badarg,
|
|
badarg,
|
|
|
- emqx_bridge_s3_aggreg_buffer:read(Reader1)
|
|
|
|
|
|
|
+ emqx_connector_aggreg_buffer:read(Reader1)
|
|
|
),
|
|
),
|
|
|
- ok = emqx_bridge_s3_test_helpers:truncate_at(Filename, WPos div 2),
|
|
|
|
|
|
|
+ ok = emqx_connector_aggregator_test_helpers:truncate_at(Filename, WPos div 2),
|
|
|
{ok, RFD2} = file:open(Filename, [read, binary]),
|
|
{ok, RFD2} = file:open(Filename, [read, binary]),
|
|
|
- {Metadata, Reader2} = emqx_bridge_s3_aggreg_buffer:new_reader(RFD2),
|
|
|
|
|
|
|
+ {Metadata, Reader2} = emqx_connector_aggreg_buffer:new_reader(RFD2),
|
|
|
{ReadTerms2, Reader3} = read_terms(_FitsInto = 3, Reader2),
|
|
{ReadTerms2, Reader3} = read_terms(_FitsInto = 3, Reader2),
|
|
|
?assertEqual(lists:sublist(Terms, 3), ReadTerms2),
|
|
?assertEqual(lists:sublist(Terms, 3), ReadTerms2),
|
|
|
?assertError(
|
|
?assertError(
|
|
|
badarg,
|
|
badarg,
|
|
|
- emqx_bridge_s3_aggreg_buffer:read(Reader3)
|
|
|
|
|
|
|
+ emqx_connector_aggreg_buffer:read(Reader3)
|
|
|
).
|
|
).
|
|
|
|
|
|
|
|
t_read_truncated_takeover_write(Config) ->
|
|
t_read_truncated_takeover_write(Config) ->
|
|
|
Filename = mk_filename(?FUNCTION_NAME, Config),
|
|
Filename = mk_filename(?FUNCTION_NAME, Config),
|
|
|
{ok, WFD} = file:open(Filename, [write, binary]),
|
|
{ok, WFD} = file:open(Filename, [write, binary]),
|
|
|
Metadata = {?MODULE, #{tc => ?FUNCTION_NAME}},
|
|
Metadata = {?MODULE, #{tc => ?FUNCTION_NAME}},
|
|
|
- Writer1 = emqx_bridge_s3_aggreg_buffer:new_writer(WFD, Metadata),
|
|
|
|
|
|
|
+ Writer1 = emqx_connector_aggreg_buffer:new_writer(WFD, Metadata),
|
|
|
Terms1 = [
|
|
Terms1 = [
|
|
|
[[[[[[[[[[[]]]]]]]]]]],
|
|
[[[[[[[[[[[]]]]]]]]]]],
|
|
|
lists:seq(1, 10000),
|
|
lists:seq(1, 10000),
|
|
@@ -129,14 +129,14 @@ t_read_truncated_takeover_write(Config) ->
|
|
|
{<<"application/x-octet-stream">>, rand:bytes(102400)}
|
|
{<<"application/x-octet-stream">>, rand:bytes(102400)}
|
|
|
],
|
|
],
|
|
|
ok = lists:foreach(
|
|
ok = lists:foreach(
|
|
|
- fun(T) -> ?assertEqual(ok, emqx_bridge_s3_aggreg_buffer:write(T, Writer1)) end,
|
|
|
|
|
|
|
+ fun(T) -> ?assertEqual(ok, emqx_connector_aggreg_buffer:write(T, Writer1)) end,
|
|
|
Terms1
|
|
Terms1
|
|
|
),
|
|
),
|
|
|
{ok, WPos} = file:position(WFD, cur),
|
|
{ok, WPos} = file:position(WFD, cur),
|
|
|
ok = file:close(WFD),
|
|
ok = file:close(WFD),
|
|
|
- ok = emqx_bridge_s3_test_helpers:truncate_at(Filename, WPos div 2),
|
|
|
|
|
|
|
+ ok = emqx_connector_aggregator_test_helpers:truncate_at(Filename, WPos div 2),
|
|
|
{ok, RWFD} = file:open(Filename, [read, write, binary]),
|
|
{ok, RWFD} = file:open(Filename, [read, write, binary]),
|
|
|
- {Metadata, Reader0} = emqx_bridge_s3_aggreg_buffer:new_reader(RWFD),
|
|
|
|
|
|
|
+ {Metadata, Reader0} = emqx_connector_aggreg_buffer:new_reader(RWFD),
|
|
|
{ReadTerms1, Reader1} = read_terms(_Survived = 3, Reader0),
|
|
{ReadTerms1, Reader1} = read_terms(_Survived = 3, Reader0),
|
|
|
?assertEqual(
|
|
?assertEqual(
|
|
|
lists:sublist(Terms1, 3),
|
|
lists:sublist(Terms1, 3),
|
|
@@ -144,16 +144,16 @@ t_read_truncated_takeover_write(Config) ->
|
|
|
),
|
|
),
|
|
|
?assertError(
|
|
?assertError(
|
|
|
badarg,
|
|
badarg,
|
|
|
- emqx_bridge_s3_aggreg_buffer:read(Reader1)
|
|
|
|
|
|
|
+ emqx_connector_aggreg_buffer:read(Reader1)
|
|
|
),
|
|
),
|
|
|
- Writer2 = emqx_bridge_s3_aggreg_buffer:takeover(Reader1),
|
|
|
|
|
|
|
+ Writer2 = emqx_connector_aggreg_buffer:takeover(Reader1),
|
|
|
ok = lists:foreach(
|
|
ok = lists:foreach(
|
|
|
- fun(T) -> ?assertEqual(ok, emqx_bridge_s3_aggreg_buffer:write(T, Writer2)) end,
|
|
|
|
|
|
|
+ fun(T) -> ?assertEqual(ok, emqx_connector_aggreg_buffer:write(T, Writer2)) end,
|
|
|
Terms2
|
|
Terms2
|
|
|
),
|
|
),
|
|
|
ok = file:close(RWFD),
|
|
ok = file:close(RWFD),
|
|
|
{ok, RFD} = file:open(Filename, [read, binary]),
|
|
{ok, RFD} = file:open(Filename, [read, binary]),
|
|
|
- {Metadata, Reader2} = emqx_bridge_s3_aggreg_buffer:new_reader(RFD),
|
|
|
|
|
|
|
+ {Metadata, Reader2} = emqx_connector_aggreg_buffer:new_reader(RFD),
|
|
|
ReadTerms2 = read_until_eof(Reader2),
|
|
ReadTerms2 = read_until_eof(Reader2),
|
|
|
?assertEqual(
|
|
?assertEqual(
|
|
|
lists:sublist(Terms1, 3) ++ Terms2,
|
|
lists:sublist(Terms1, 3) ++ Terms2,
|
|
@@ -168,12 +168,12 @@ mk_filename(Name, Config) ->
|
|
|
read_terms(0, Reader) ->
|
|
read_terms(0, Reader) ->
|
|
|
{[], Reader};
|
|
{[], Reader};
|
|
|
read_terms(N, Reader0) ->
|
|
read_terms(N, Reader0) ->
|
|
|
- {Term, Reader1} = emqx_bridge_s3_aggreg_buffer:read(Reader0),
|
|
|
|
|
|
|
+ {Term, Reader1} = emqx_connector_aggreg_buffer:read(Reader0),
|
|
|
{Terms, Reader} = read_terms(N - 1, Reader1),
|
|
{Terms, Reader} = read_terms(N - 1, Reader1),
|
|
|
{[Term | Terms], Reader}.
|
|
{[Term | Terms], Reader}.
|
|
|
|
|
|
|
|
read_until_eof(Reader0) ->
|
|
read_until_eof(Reader0) ->
|
|
|
- case emqx_bridge_s3_aggreg_buffer:read(Reader0) of
|
|
|
|
|
|
|
+ case emqx_connector_aggreg_buffer:read(Reader0) of
|
|
|
{Term, Reader} ->
|
|
{Term, Reader} ->
|
|
|
[Term | read_until_eof(Reader)];
|
|
[Term | read_until_eof(Reader)];
|
|
|
eof ->
|
|
eof ->
|