Merge pull request #7980 from EMQ-YangM/fix_zero_padding

fix: zero padding should be to the MSB side
This commit is contained in:
Yang Miao 2022-05-18 17:22:23 +08:00 committed by GitHub
commit bf552f2c4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 6 deletions

View File

@ -333,8 +333,7 @@ hexstr_to_bin(B, Size) when is_binary(B) ->
0 ->
make_binary(B);
8 ->
<<BH:((Size - 8) div 8)/binary, BL:8>> = B,
<<(make_binary(BH))/binary, <<(hexchar2int(BL) * 16)>>/binary>>;
make_binary(<<"0", B/binary>>);
_ ->
throw({unsupport_hex_string, B, Size})
end.

View File

@ -171,10 +171,10 @@ t_term_encode(_) ->
).
t_hexstr2bin(_) ->
?assertEqual(<<99, 100, 240>>, emqx_rule_funcs:hexstr2bin(<<"6364f">>)),
?assertEqual(<<160>>, emqx_rule_funcs:hexstr2bin(<<"a">>)),
?assertEqual(<<240>>, emqx_rule_funcs:hexstr2bin(<<"f">>)),
?assertEqual(<<80>>, emqx_rule_funcs:hexstr2bin(<<"5">>)),
?assertEqual(<<6, 54, 79>>, emqx_rule_funcs:hexstr2bin(<<"6364f">>)),
?assertEqual(<<10>>, emqx_rule_funcs:hexstr2bin(<<"a">>)),
?assertEqual(<<15>>, emqx_rule_funcs:hexstr2bin(<<"f">>)),
?assertEqual(<<5>>, emqx_rule_funcs:hexstr2bin(<<"5">>)),
?assertEqual(<<1, 2>>, emqx_rule_funcs:hexstr2bin(<<"0102">>)),
?assertEqual(<<17, 33>>, emqx_rule_funcs:hexstr2bin(<<"1121">>)).