chore(emqx_trie): add test case to cover multiple levels of + wildcards
This commit is contained in:
parent
eb946eb80c
commit
8d55d425dc
|
@ -141,8 +141,12 @@ compact(Words) ->
|
|||
false -> Words
|
||||
end.
|
||||
|
||||
%% join split words into compacted segments
|
||||
%% each segment ends with one wildcard word
|
||||
%% e.g.
|
||||
%% a/b/c/+/d/# => [a/b/c/+, d/#]
|
||||
%% a/+/+/b => [a/+, +, b]
|
||||
%% a/+/+/+/+/b => [a/+, +, +, +, b]
|
||||
do_compact(Words) ->
|
||||
do_compact(Words, empty, []).
|
||||
|
||||
|
@ -317,7 +321,10 @@ do_compact_test() ->
|
|||
?assertEqual([<<"/+">>], do_compact(words(<<"/+">>))),
|
||||
?assertEqual([<<"/#">>], do_compact(words(<<"/#">>))),
|
||||
?assertEqual([<<"a/b/+">>, <<"c">>], do_compact(words(<<"a/b/+/c">>))),
|
||||
?assertEqual([<<"a/+">>, <<"+">>, <<"b">>], do_compact(words(<<"a/+/+/b">>))).
|
||||
?assertEqual([<<"a/+">>, <<"+">>, <<"b">>], do_compact(words(<<"a/+/+/b">>))),
|
||||
?assertEqual([<<"a/+">>, <<"+">>, <<"+">>, <<"+">>, <<"b">>],
|
||||
do_compact(words(<<"a/+/+/+/+/b">>))),
|
||||
ok.
|
||||
|
||||
clear_tables() -> mnesia:clear_table(?TRIE).
|
||||
|
||||
|
|
Loading…
Reference in New Issue