From b0f082ebe073dfffcafa512be970c8c4984461b7 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Tue, 23 Aug 2016 10:13:13 +0800 Subject: [PATCH] to_hexstr/1, from_hexstr/1 --- src/emqttd_guid.erl | 8 +++++++- test/emqttd_lib_SUITE.erl | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/emqttd_guid.erl b/src/emqttd_guid.erl index d9593d3a0..6dab23afe 100644 --- a/src/emqttd_guid.erl +++ b/src/emqttd_guid.erl @@ -29,7 +29,7 @@ %% @end -module(emqttd_guid). --export([gen/0, new/0, timestamp/1]). +-export([gen/0, new/0, timestamp/1, to_hexstr/1, from_hexstr/1]). -define(MAX_SEQ, 16#FFFF). @@ -120,3 +120,9 @@ npid() -> PidByte3:8, PidByte4:8>>, NPid. +to_hexstr(<>) -> + list_to_binary(integer_to_list(I, 16)). + +from_hexstr(S) -> + I = list_to_integer(binary_to_list(S), 16), <>. + diff --git a/test/emqttd_lib_SUITE.erl b/test/emqttd_lib_SUITE.erl index 1a3b1aef6..ec68294c6 100644 --- a/test/emqttd_lib_SUITE.erl +++ b/test/emqttd_lib_SUITE.erl @@ -16,6 +16,8 @@ -module(emqttd_lib_SUITE). +-include_lib("eunit/include/eunit.hrl"). + -compile(export_all). -define(SOCKOPTS, [ @@ -35,7 +37,7 @@ all() -> [{group, guid}, {group, opts}, {group, node}, {group, base62}]. groups() -> - [{guid, [], [guid_gen]}, + [{guid, [], [guid_gen, guid_hexstr]}, {opts, [], [opts_merge]}, {?PQ, [], [priority_queue_plen, priority_queue_out2]}, @@ -56,6 +58,10 @@ guid_gen(_) -> Ts2 = emqttd_guid:timestamp(emqttd_guid:gen()), true = Ts2 > Ts1. +guid_hexstr(_) -> + Guid = emqttd_guid:gen(), + ?assertEqual(Guid, emqttd_guid:from_hexstr(emqttd_guid:to_hexstr(Guid))). + %%-------------------------------------------------------------------- %% emqttd_opts %%--------------------------------------------------------------------