|
|
@@ -28,6 +28,7 @@
|
|
|
[
|
|
|
wildcard/1,
|
|
|
match/2,
|
|
|
+ intersection/2,
|
|
|
validate/1,
|
|
|
prepend/2,
|
|
|
join/1,
|
|
|
@@ -128,6 +129,21 @@ t_match_perf(_) ->
|
|
|
true = match(Name, Filter),
|
|
|
ok = bench('match/2', fun emqx_topic:match/2, [Name, Filter]).
|
|
|
|
|
|
+t_intersect(_) ->
|
|
|
+ <<"t/global/1/+">> = intersection(<<"t/global/#">>, <<"t/+/1/+">>),
|
|
|
+ <<"t/global/#">> = intersection(<<"t/global/#">>, <<"#">>),
|
|
|
+ <<"t/global/#">> = intersection(<<"t/global/#">>, <<"t/global/#">>),
|
|
|
+ <<"1/2/3/4/5">> = intersection(<<"1/+/3/+/5/#">>, <<"+/2/+/4/+">>),
|
|
|
+ <<"t/local/1">> = intersection(<<"t/local/1/#">>, <<"t/local/+">>),
|
|
|
+ false = intersection(<<"t/global/#">>, <<"t/local/+">>),
|
|
|
+ false = intersection(<<"t/local/1/+">>, <<"t/local/+">>).
|
|
|
+
|
|
|
+t_sys_intersect(_) ->
|
|
|
+ <<"$SYS/broker/+">> = intersection(<<"$SYS/broker/#">>, <<"$SYS/+/+">>),
|
|
|
+ <<"$SYS/broker">> = intersection(<<"$SYS/broker">>, <<"$SYS/+">>),
|
|
|
+ false = intersection(<<"$SYS/broker">>, <<"+/+">>),
|
|
|
+ false = intersection(<<"$SYS/broker">>, <<"#">>).
|
|
|
+
|
|
|
t_validate(_) ->
|
|
|
true = validate(<<"a/+/#">>),
|
|
|
true = validate(<<"a/b/c/d">>),
|