test(trie): add more involved route add + delete case
That shows how current local trie implementation breaks because of lack of refcounting.
This commit is contained in:
parent
dcb63440bc
commit
84e40fb6fe
|
@ -79,6 +79,55 @@ t_add_delete(_) ->
|
|||
?R:delete_route(<<"a/+/b">>, node()),
|
||||
?assertEqual([], ?R:topics()).
|
||||
|
||||
t_add_delete_incremental(_) ->
|
||||
?R:add_route(<<"a/b/c">>),
|
||||
?R:add_route(<<"a/+/c">>, node()),
|
||||
?R:add_route(<<"a/+/+">>, node()),
|
||||
?R:add_route(<<"a/b/#">>, node()),
|
||||
?R:add_route(<<"#">>, node()),
|
||||
?assertEqual(
|
||||
[
|
||||
#route{topic = <<"#">>, dest = node()},
|
||||
#route{topic = <<"a/+/+">>, dest = node()},
|
||||
#route{topic = <<"a/+/c">>, dest = node()},
|
||||
#route{topic = <<"a/b/#">>, dest = node()},
|
||||
#route{topic = <<"a/b/c">>, dest = node()}
|
||||
],
|
||||
lists:sort(?R:match_routes(<<"a/b/c">>))
|
||||
),
|
||||
?R:delete_route(<<"a/+/c">>, node()),
|
||||
?assertEqual(
|
||||
[
|
||||
#route{topic = <<"#">>, dest = node()},
|
||||
#route{topic = <<"a/+/+">>, dest = node()},
|
||||
#route{topic = <<"a/b/#">>, dest = node()},
|
||||
#route{topic = <<"a/b/c">>, dest = node()}
|
||||
],
|
||||
lists:sort(?R:match_routes(<<"a/b/c">>))
|
||||
),
|
||||
?R:delete_route(<<"a/+/+">>, node()),
|
||||
?assertEqual(
|
||||
[
|
||||
#route{topic = <<"#">>, dest = node()},
|
||||
#route{topic = <<"a/b/#">>, dest = node()},
|
||||
#route{topic = <<"a/b/c">>, dest = node()}
|
||||
],
|
||||
lists:sort(?R:match_routes(<<"a/b/c">>))
|
||||
),
|
||||
?R:delete_route(<<"a/b/#">>, node()),
|
||||
?assertEqual(
|
||||
[
|
||||
#route{topic = <<"#">>, dest = node()},
|
||||
#route{topic = <<"a/b/c">>, dest = node()}
|
||||
],
|
||||
lists:sort(?R:match_routes(<<"a/b/c">>))
|
||||
),
|
||||
?R:delete_route(<<"a/b/c">>, node()),
|
||||
?assertEqual(
|
||||
[#route{topic = <<"#">>, dest = node()}],
|
||||
lists:sort(?R:match_routes(<<"a/b/c">>))
|
||||
).
|
||||
|
||||
t_do_add_delete(_) ->
|
||||
?R:do_add_route(<<"a/b/c">>),
|
||||
?R:do_add_route(<<"a/b/c">>, node()),
|
||||
|
|
Loading…
Reference in New Issue