|
|
@@ -223,10 +223,38 @@ t_hexstr2bin(_) ->
|
|
|
?assertEqual(<<1, 2>>, emqx_rule_funcs:hexstr2bin(<<"0102">>)),
|
|
|
?assertEqual(<<17, 33>>, emqx_rule_funcs:hexstr2bin(<<"1121">>)).
|
|
|
|
|
|
+t_hexstr2bin_with_prefix(_) ->
|
|
|
+ ?assertEqual(<<6, 54, 79>>, emqx_rule_funcs:hexstr2bin(<<"0x6364f">>, <<"0x">>)),
|
|
|
+ ?assertEqual(<<10>>, emqx_rule_funcs:hexstr2bin(<<"0Xa">>, <<"0X">>)),
|
|
|
+ ?assertEqual(<<15>>, emqx_rule_funcs:hexstr2bin(<<"0bf">>, <<"0b">>)),
|
|
|
+ ?assertEqual(<<5>>, emqx_rule_funcs:hexstr2bin(<<"0B5">>, <<"0B">>)),
|
|
|
+ ?assertEqual(<<1, 2>>, emqx_rule_funcs:hexstr2bin(<<"0x0102">>, <<"0x">>)),
|
|
|
+ ?assertEqual(<<17, 33>>, emqx_rule_funcs:hexstr2bin(<<"0X1121">>, <<"0X">>)).
|
|
|
+
|
|
|
+t_hexstr2bin_with_invalid_prefix(_) ->
|
|
|
+ [
|
|
|
+ begin
|
|
|
+ ?assertError(binary_prefix_unmatch, emqx_rule_funcs:hexstr2bin(HexStr, Prefix))
|
|
|
+ end
|
|
|
+ || {HexStr, Prefix} <- [
|
|
|
+ {<<"0x6364f">>, <<"ab">>},
|
|
|
+ {<<"0Xa">>, <<"ef">>},
|
|
|
+ {<<"0bf">>, <<"你好👋"/utf8>>},
|
|
|
+ {<<"0B5">>, <<"🐸"/utf8>>}
|
|
|
+ ]
|
|
|
+ ].
|
|
|
+
|
|
|
t_bin2hexstr(_) ->
|
|
|
?assertEqual(<<"0102">>, emqx_rule_funcs:bin2hexstr(<<1, 2>>)),
|
|
|
?assertEqual(<<"1121">>, emqx_rule_funcs:bin2hexstr(<<17, 33>>)).
|
|
|
|
|
|
+t_bin2hexstr_with_prefix(_) ->
|
|
|
+ ?assertEqual(<<"0x0102">>, emqx_rule_funcs:bin2hexstr(<<1, 2>>, <<"0x">>)),
|
|
|
+ ?assertEqual(<<"0X0102">>, emqx_rule_funcs:bin2hexstr(<<1, 2>>, <<"0X">>)),
|
|
|
+ ?assertEqual(<<"0b1121">>, emqx_rule_funcs:bin2hexstr(<<17, 33>>, <<"0b">>)),
|
|
|
+ ?assertEqual(<<"0B1121">>, emqx_rule_funcs:bin2hexstr(<<17, 33>>, <<"0B">>)),
|
|
|
+ ?assertEqual(<<"🧠0102"/utf8>>, emqx_rule_funcs:bin2hexstr(<<1, 2>>, <<"🧠"/utf8>>)).
|
|
|
+
|
|
|
t_bin2hexstr_not_even_bytes(_) ->
|
|
|
?assertEqual(<<"0102">>, emqx_rule_funcs:bin2hexstr(<<1:5, 2>>)),
|
|
|
?assertEqual(<<"1002">>, emqx_rule_funcs:bin2hexstr(<<16:5, 2>>)),
|
|
|
@@ -240,20 +268,20 @@ t_bin2hexstr_not_even_bytes(_) ->
|
|
|
?assertEqual(<<"1121">>, emqx_rule_funcs:bin2hexstr(<<17, 33>>)),
|
|
|
?assertEqual(<<"01121">>, emqx_rule_funcs:bin2hexstr(<<17:9, 33>>)).
|
|
|
|
|
|
-t_sqlserver_hexbin(_) ->
|
|
|
- ?assertEqual(<<"0x0102">>, emqx_rule_funcs:sqlserver_hexbin(<<1, 2>>)),
|
|
|
- ?assertEqual(<<"0x1121">>, emqx_rule_funcs:sqlserver_hexbin(<<17, 33>>)),
|
|
|
- ?assertEqual(<<"0x0102">>, emqx_rule_funcs:sqlserver_hexbin(<<1:5, 2>>)),
|
|
|
- ?assertEqual(<<"0x1002">>, emqx_rule_funcs:sqlserver_hexbin(<<16:5, 2>>)),
|
|
|
- ?assertEqual(<<"0x1002">>, emqx_rule_funcs:sqlserver_hexbin(<<16:8, 2>>)),
|
|
|
- ?assertEqual(<<"0x102">>, emqx_rule_funcs:sqlserver_hexbin(<<1:4, 2>>)),
|
|
|
- ?assertEqual(<<"0x102">>, emqx_rule_funcs:sqlserver_hexbin(<<1:3, 2>>)),
|
|
|
- ?assertEqual(<<"0x102">>, emqx_rule_funcs:sqlserver_hexbin(<<1:1, 2>>)),
|
|
|
- ?assertEqual(<<"0x002">>, emqx_rule_funcs:sqlserver_hexbin(<<2:1, 2>>)),
|
|
|
- ?assertEqual(<<"0x02">>, emqx_rule_funcs:sqlserver_hexbin(<<2>>)),
|
|
|
- ?assertEqual(<<"0x2">>, emqx_rule_funcs:sqlserver_hexbin(<<2:2>>)),
|
|
|
- ?assertEqual(<<"0x1121">>, emqx_rule_funcs:sqlserver_hexbin(<<17, 33>>)),
|
|
|
- ?assertEqual(<<"0x01121">>, emqx_rule_funcs:sqlserver_hexbin(<<17:9, 33>>)).
|
|
|
+t_sqlserver_bin2hexstr(_) ->
|
|
|
+ ?assertEqual(<<"0x0102">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<1, 2>>)),
|
|
|
+ ?assertEqual(<<"0x1121">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<17, 33>>)),
|
|
|
+ ?assertEqual(<<"0x0102">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<1:5, 2>>)),
|
|
|
+ ?assertEqual(<<"0x1002">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<16:5, 2>>)),
|
|
|
+ ?assertEqual(<<"0x1002">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<16:8, 2>>)),
|
|
|
+ ?assertEqual(<<"0x102">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<1:4, 2>>)),
|
|
|
+ ?assertEqual(<<"0x102">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<1:3, 2>>)),
|
|
|
+ ?assertEqual(<<"0x102">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<1:1, 2>>)),
|
|
|
+ ?assertEqual(<<"0x002">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<2:1, 2>>)),
|
|
|
+ ?assertEqual(<<"0x02">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<2>>)),
|
|
|
+ ?assertEqual(<<"0x2">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<2:2>>)),
|
|
|
+ ?assertEqual(<<"0x1121">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<17, 33>>)),
|
|
|
+ ?assertEqual(<<"0x01121">>, emqx_rule_funcs:sqlserver_bin2hexstr(<<17:9, 33>>)).
|
|
|
|
|
|
t_hex_convert(_) ->
|
|
|
?PROPTEST(hex_convert).
|