Преглед изворни кода

test: hex binary with prefix conversion funcs

JimMoen пре 1 година
родитељ
комит
6e9af13fa3
1 измењених фајлова са 42 додато и 14 уклоњено
  1. 42 14
      apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl

+ 42 - 14
apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl

@@ -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).