فهرست منبع

Merge pull request #6268 from HJianBo/reduce-case-logs

test(gw): reduce useless log print
JianBo He 4 سال پیش
والد
کامیت
581cb6ac5d

+ 11 - 4
apps/emqx_gateway/src/coap/emqx_coap_impl.erl

@@ -89,8 +89,8 @@ start_listener(GwName, Ctx, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
     ListenOnStr = emqx_gateway_utils:format_listenon(ListenOn),
     case start_listener(GwName, Ctx, Type, LisName, ListenOn, SocketOpts, Cfg) of
         {ok, Pid} ->
-            ?ULOG("Gateway ~ts:~ts:~ts on ~ts started.~n",
-                  [GwName, Type, LisName, ListenOnStr]),
+            console_print("Gateway ~ts:~ts:~ts on ~ts started.~n",
+                          [GwName, Type, LisName, ListenOnStr]),
             Pid;
         {error, Reason} ->
             ?ELOG("Failed to start gateway ~ts:~ts:~ts on ~ts: ~0p~n",
@@ -118,8 +118,9 @@ stop_listener(GwName, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
     StopRet = stop_listener(GwName, Type, LisName, ListenOn, SocketOpts, Cfg),
     ListenOnStr = emqx_gateway_utils:format_listenon(ListenOn),
     case StopRet of
-        ok -> ?ULOG("Gateway ~ts:~ts:~ts on ~ts stopped.~n",
-                    [GwName, Type, LisName, ListenOnStr]);
+        ok ->
+            console_print("Gateway ~ts:~ts:~ts on ~ts stopped.~n",
+                          [GwName, Type, LisName, ListenOnStr]);
         {error, Reason} ->
             ?ELOG("Failed to stop gateway ~ts:~ts:~ts on ~ts: ~0p~n",
                   [GwName, Type, LisName, ListenOnStr, Reason])
@@ -129,3 +130,9 @@ stop_listener(GwName, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
 stop_listener(GwName, Type, LisName, ListenOn, _SocketOpts, _Cfg) ->
     Name = emqx_gateway_utils:listener_id(GwName, Type, LisName),
     esockd:close(Name, ListenOn).
+
+-ifndef(TEST).
+console_print(Fmt, Args) -> ?ULOG(Fmt, Args).
+-else.
+console_print(_Fmt, _Args) -> ok.
+-endif.

+ 20 - 7
apps/emqx_gateway/src/exproto/emqx_exproto_impl.erl

@@ -59,12 +59,18 @@ start_grpc_server(GwName, Options = #{bind := ListenOn}) ->
                   SslOpts ->
                       [{ssl_options, SslOpts}]
               end,
-    _ = grpc:start_server(GwName, ListenOn, Services, SvrOptions),
-    ?ULOG("Start ~ts gRPC server on ~p successfully.~n", [GwName, ListenOn]).
+    case grpc:start_server(GwName, ListenOn, Services, SvrOptions) of
+        {ok, _SvrPid} ->
+            console_print("Start ~ts gRPC server on ~p successfully.",
+                          [GwName, ListenOn]);
+        {error, Reason} ->
+            ?ELOG("Falied to start ~ts gRPC server on ~p, reason: ~p",
+                  [GwName, ListenOn, Reason])
+    end.
 
 stop_grpc_server(GwName) ->
     _ = grpc:stop_server(GwName),
-    ?ULOG("Stop ~s gRPC server successfully.~n", [GwName]).
+    console_print("Stop ~s gRPC server successfully.~n", [GwName]).
 
 start_grpc_client_channel(_GwName, undefined) ->
     undefined;
@@ -157,8 +163,8 @@ start_listener(GwName, Ctx, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
     ListenOnStr = emqx_gateway_utils:format_listenon(ListenOn),
     case start_listener(GwName, Ctx, Type, LisName, ListenOn, SocketOpts, Cfg) of
         {ok, Pid} ->
-            ?ULOG("Gateway ~ts:~ts:~ts on ~ts started.~n",
-                  [GwName, Type, LisName, ListenOnStr]),
+            console_print("Gateway ~ts:~ts:~ts on ~ts started.~n",
+                          [GwName, Type, LisName, ListenOnStr]),
             Pid;
         {error, Reason} ->
             ?ELOG("Failed to start gateway ~ts:~ts:~ts on ~ts: ~0p~n",
@@ -212,8 +218,9 @@ stop_listener(GwName, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
     StopRet = stop_listener(GwName, Type, LisName, ListenOn, SocketOpts, Cfg),
     ListenOnStr = emqx_gateway_utils:format_listenon(ListenOn),
     case StopRet of
-        ok -> ?ULOG("Gateway ~ts:~ts:~ts on ~ts stopped.~n",
-                    [GwName, Type, LisName, ListenOnStr]);
+        ok ->
+            console_print("Gateway ~ts:~ts:~ts on ~ts stopped.~n",
+                          [GwName, Type, LisName, ListenOnStr]);
         {error, Reason} ->
             ?ELOG("Failed to stop gateway ~ts:~ts:~ts on ~ts: ~0p~n",
                   [GwName, Type, LisName, ListenOnStr, Reason])
@@ -223,3 +230,9 @@ stop_listener(GwName, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
 stop_listener(GwName, Type, LisName, ListenOn, _SocketOpts, _Cfg) ->
     Name = emqx_gateway_utils:listener_id(GwName, Type, LisName),
     esockd:close(Name, ListenOn).
+
+-ifndef(TEST).
+console_print(Fmt, Args) -> ?ULOG(Fmt, Args).
+-else.
+console_print(_Fmt, _Args) -> ok.
+-endif.

+ 11 - 4
apps/emqx_gateway/src/lwm2m/emqx_lwm2m_impl.erl

@@ -91,8 +91,8 @@ start_listener(GwName, Ctx, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
     ListenOnStr = emqx_gateway_utils:format_listenon(ListenOn),
     case start_listener(GwName, Ctx, Type, LisName, ListenOn, SocketOpts, Cfg) of
         {ok, Pid} ->
-            ?ULOG("Gateway ~ts:~ts:~ts on ~ts started.~n",
-                  [GwName, Type, LisName, ListenOnStr]),
+            console_print("Gateway ~ts:~ts:~ts on ~ts started.~n",
+                          [GwName, Type, LisName, ListenOnStr]),
             Pid;
         {error, Reason} ->
             ?ELOG("Failed to start gateway ~ts:~ts:~ts on ~ts: ~0p~n",
@@ -131,8 +131,9 @@ stop_listener(GwName, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
     StopRet = stop_listener(GwName, Type, LisName, ListenOn, SocketOpts, Cfg),
     ListenOnStr = emqx_gateway_utils:format_listenon(ListenOn),
     case StopRet of
-        ok -> ?ULOG("Gateway ~ts:~ts:~ts on ~ts stopped.~n",
-                    [GwName, Type, LisName, ListenOnStr]);
+        ok ->
+            console_print("Gateway ~ts:~ts:~ts on ~ts stopped.~n",
+                          [GwName, Type, LisName, ListenOnStr]);
         {error, Reason} ->
             ?ELOG("Failed to stop gateway ~ts:~ts:~ts on ~ts: ~0p~n",
                   [GwName, Type, LisName, ListenOnStr, Reason])
@@ -142,3 +143,9 @@ stop_listener(GwName, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
 stop_listener(GwName, Type, LisName, ListenOn, _SocketOpts, _Cfg) ->
     Name = emqx_gateway_utils:listener_id(GwName, Type, LisName),
     esockd:close(Name, ListenOn).
+
+-ifndef(TEST).
+console_print(Fmt, Args) -> ?ULOG(Fmt, Args).
+-else.
+console_print(_Fmt, _Args) -> ok.
+-endif.

+ 11 - 4
apps/emqx_gateway/src/mqttsn/emqx_sn_impl.erl

@@ -108,8 +108,8 @@ start_listener(GwName, Ctx, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
     ListenOnStr = emqx_gateway_utils:format_listenon(ListenOn),
     case start_listener(GwName, Ctx, Type, LisName, ListenOn, SocketOpts, Cfg) of
         {ok, Pid} ->
-            ?ULOG("Gateway ~ts:~ts:~ts on ~ts started.~n",
-                  [GwName, Type, LisName, ListenOnStr]),
+            console_print("Gateway ~ts:~ts:~ts on ~ts started.~n",
+                          [GwName, Type, LisName, ListenOnStr]),
             Pid;
         {error, Reason} ->
             ?ELOG("Failed to start gateway ~ts:~ts:~ts on ~ts: ~0p~n",
@@ -142,8 +142,9 @@ stop_listener(GwName, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
     StopRet = stop_listener(GwName, Type, LisName, ListenOn, SocketOpts, Cfg),
     ListenOnStr = emqx_gateway_utils:format_listenon(ListenOn),
     case StopRet of
-        ok -> ?ULOG("Gateway ~ts:~ts:~ts on ~ts stopped.~n",
-                    [GwName, Type, LisName, ListenOnStr]);
+        ok ->
+            console_print("Gateway ~ts:~ts:~ts on ~ts stopped.~n",
+                          [GwName, Type, LisName, ListenOnStr]);
         {error, Reason} ->
             ?ELOG("Failed to stop gateway ~ts:~ts:~ts on ~ts: ~0p~n",
                   [GwName, Type, LisName, ListenOnStr, Reason])
@@ -153,3 +154,9 @@ stop_listener(GwName, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
 stop_listener(GwName, Type, LisName, ListenOn, _SocketOpts, _Cfg) ->
     Name = emqx_gateway_utils:listener_id(GwName, Type, LisName),
     esockd:close(Name, ListenOn).
+
+-ifndef(TEST).
+console_print(Fmt, Args) -> ?ULOG(Fmt, Args).
+-else.
+console_print(_Fmt, _Args) -> ok.
+-endif.

+ 11 - 4
apps/emqx_gateway/src/stomp/emqx_stomp_impl.erl

@@ -93,8 +93,8 @@ start_listener(GwName, Ctx, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
     ListenOnStr = emqx_gateway_utils:format_listenon(ListenOn),
     case start_listener(GwName, Ctx, Type, LisName, ListenOn, SocketOpts, Cfg) of
         {ok, Pid} ->
-            ?ULOG("Gateway ~ts:~ts:~ts on ~ts started.~n",
-                  [GwName, Type, LisName, ListenOnStr]),
+            console_print("Gateway ~ts:~ts:~ts on ~ts started.~n",
+                          [GwName, Type, LisName, ListenOnStr]),
             Pid;
         {error, Reason} ->
             ?ELOG("Failed to start gateway ~ts:~ts:~ts on ~ts: ~0p~n",
@@ -127,8 +127,9 @@ stop_listener(GwName, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
     StopRet = stop_listener(GwName, Type, LisName, ListenOn, SocketOpts, Cfg),
     ListenOnStr = emqx_gateway_utils:format_listenon(ListenOn),
     case StopRet of
-        ok -> ?ULOG("Gateway ~ts:~ts:~ts on ~ts stopped.~n",
-                    [GwName, Type, LisName, ListenOnStr]);
+        ok ->
+            console_print("Gateway ~ts:~ts:~ts on ~ts stopped.~n",
+                          [GwName, Type, LisName, ListenOnStr]);
         {error, Reason} ->
             ?ELOG("Failed to stop gateway ~ts:~ts:~ts on ~ts: ~0p~n",
                   [GwName, Type, LisName, ListenOnStr, Reason])
@@ -138,3 +139,9 @@ stop_listener(GwName, {Type, LisName, ListenOn, SocketOpts, Cfg}) ->
 stop_listener(GwName, Type, LisName, ListenOn, _SocketOpts, _Cfg) ->
     Name = emqx_gateway_utils:listener_id(GwName, Type, LisName),
     esockd:close(Name, ListenOn).
+
+-ifndef(TEST).
+console_print(Fmt, Args) -> ?ULOG(Fmt, Args).
+-else.
+console_print(_Fmt, _Args) -> ok.
+-endif.

+ 4 - 2
apps/emqx_gateway/test/emqx_exproto_echo_svr.erl

@@ -188,13 +188,15 @@ on_received_messages(Stream, _Md) ->
 %%--------------------------------------------------------------------
 
 handle_in(Conn, ?TYPE_CONNECT, #{<<"clientinfo">> := ClientInfo, <<"password">> := Password}) ->
-    NClientInfo = maps:from_list([{binary_to_atom(K, utf8), V} || {K, V} <- maps:to_list(ClientInfo)]),
+    NClientInfo = maps:from_list(
+                    [{binary_to_atom(K, utf8), V}
+                     || {K, V} <- maps:to_list(ClientInfo)]),
     case ?authenticate(#{conn => Conn, clientinfo => NClientInfo, password => Password}) of
         {ok, #{code := 'SUCCESS'}, _} ->
             case maps:get(keepalive, NClientInfo, 0) of
                 0 -> ok;
                 Intv ->
-                    io:format("Try call start_timer with ~ps", [Intv]),
+                    ?LOG("Try call start_timer with ~ps", [Intv]),
                     ?start_timer(#{conn => Conn, type => 'KEEPALIVE', interval => Intv})
             end,
             handle_out(Conn, ?TYPE_CONNACK, 0);

+ 261 - 87
apps/emqx_gateway/test/emqx_sn_protocol_SUITE.erl

@@ -51,6 +51,8 @@
 -define(CLIENTID, iolist_to_binary([atom_to_list(?FUNCTION_NAME), "-",
                                     integer_to_list(erlang:system_time())])).
 
+-elvis([{elvis_style, dont_repeat_yourself, disable}]).
+
 -define(CONF_DEFAULT, <<"
 gateway.mqttsn {
   gateway_id = 1
@@ -177,7 +179,7 @@ t_subscribe_case02(_) ->
     Will = 0,
     CleanSession = 0,
     MsgId = 1,
-    TopicId = ?PREDEF_TOPIC_ID1, %this TopicId is the predefined topic id corresponding to ?PREDEF_TOPIC_NAME1
+    TopicId = ?PREDEF_TOPIC_ID1,
     ReturnCode = 0,
     {ok, Socket} = gen_udp:open(0, [binary]),
 
@@ -227,8 +229,14 @@ t_subscribe_case03(_) ->
     ?assertEqual(<<2, ?SN_DISCONNECT>>, receive_response(Socket)),
     gen_udp:close(Socket).
 
-%%In this case We use predefined topic name to register and subcribe, and expect to receive the corresponding predefined topic id but not a new generated topic id from broker. We design this case to illustrate
-%% emqx_sn_gateway's compatibility of dealing with predefined and normal topics. Once we give more restrictions to different topic id type, this case would be deleted or modified.
+%% In this case We use predefined topic name to register and subcribe,
+%% and expect to receive the corresponding predefined topic id but not a new
+%% generated topic id from broker. We design this case to illustrate
+%% emqx_sn_gateway's compatibility of dealing with predefined and normal
+%% topics.
+%%
+%% Once we give more restrictions to different topic id type, this case
+%% would be deleted or modified.
 t_subscribe_case04(_) ->
     Dup = 0,
     QoS = 0,
@@ -236,7 +244,7 @@ t_subscribe_case04(_) ->
     Will = 0,
     CleanSession = 0,
     MsgId = 1,
-    TopicId = ?PREDEF_TOPIC_ID1, %this TopicId is the predefined topic id corresponding to ?PREDEF_TOPIC_NAME1
+    TopicId = ?PREDEF_TOPIC_ID1,
     ReturnCode = 0,
     {ok, Socket} = gen_udp:open(0, [binary]),
     ClientId = ?CLIENTID,
@@ -246,8 +254,12 @@ t_subscribe_case04(_) ->
     send_register_msg(Socket, Topic1, MsgId),
     ?assertEqual(<<7, ?SN_REGACK, TopicId:16, MsgId:16, 0:8>>, receive_response(Socket)),
     send_subscribe_msg_normal_topic(Socket, QoS, Topic1, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId:16, MsgId:16, ReturnCode>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId:16, MsgId:16, ReturnCode>>,
+       receive_response(Socket)
+      ),
 
     send_unsubscribe_msg_normal_topic(Socket, Topic1, MsgId),
     ?assertEqual(<<4, ?SN_UNSUBACK, MsgId:16>>, receive_response(Socket)),
@@ -277,21 +289,36 @@ t_subscribe_case05(_) ->
     ?assertEqual(<<7, ?SN_REGACK, TopicId1:16, MsgId:16, 0:8>>, receive_response(Socket)),
 
     send_subscribe_msg_normal_topic(Socket, QoS, <<"abcD">>, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId1:16, MsgId:16, ReturnCode>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId1:16, MsgId:16, ReturnCode>>,
+       receive_response(Socket)
+      ),
 
     send_subscribe_msg_normal_topic(Socket, QoS, <<"/sport/#">>, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId0:16, MsgId:16, ReturnCode>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId0:16, MsgId:16, ReturnCode>>,
+       receive_response(Socket)
+      ),
 
     send_subscribe_msg_normal_topic(Socket, QoS, <<"/a/+/water">>, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId0:16, MsgId:16, ReturnCode>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId0:16, MsgId:16, ReturnCode>>,
+       receive_response(Socket)
+      ),
 
     send_subscribe_msg_normal_topic(Socket, QoS, <<"/Tom/Home">>, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1,
-                   ?SN_NORMAL_TOPIC:2, TopicId2:16, MsgId:16, ReturnCode>>,
-                 receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId2:16, MsgId:16, ReturnCode>>,
+       receive_response(Socket)
+      ),
     send_unsubscribe_msg_normal_topic(Socket, <<"abcD">>, MsgId),
     ?assertEqual(<<4, ?SN_UNSUBACK, MsgId:16>>, receive_response(Socket)),
 
@@ -316,19 +343,37 @@ t_subscribe_case06(_) ->
 
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
     send_register_msg(Socket, <<"abc">>, MsgId),
-    ?assertEqual(<<7, ?SN_REGACK, TopicId1:16, MsgId:16, 0:8>>, receive_response(Socket)),
+    ?assertEqual(
+       <<7, ?SN_REGACK, TopicId1:16, MsgId:16, 0:8>>,
+       receive_response(Socket)
+      ),
 
     send_register_msg(Socket, <<"/blue/#">>, MsgId),
-    ?assertEqual(<<7, ?SN_REGACK, TopicId0:16, MsgId:16, ?SN_RC_NOT_SUPPORTED:8>>, receive_response(Socket)),
+    ?assertEqual(
+       <<7, ?SN_REGACK, TopicId0:16,
+         MsgId:16, ?SN_RC_NOT_SUPPORTED:8>>,
+       receive_response(Socket)
+      ),
 
     send_register_msg(Socket, <<"/blue/+/white">>, MsgId),
-    ?assertEqual(<<7, ?SN_REGACK, TopicId0:16, MsgId:16, ?SN_RC_NOT_SUPPORTED:8>>, receive_response(Socket)),
+    ?assertEqual(
+       <<7, ?SN_REGACK, TopicId0:16,
+         MsgId:16, ?SN_RC_NOT_SUPPORTED:8>>,
+       receive_response(Socket)
+      ),
     send_register_msg(Socket, <<"/$sys/rain">>, MsgId),
-    ?assertEqual(<<7, ?SN_REGACK, TopicId2:16, MsgId:16, 0:8>>, receive_response(Socket)),
+    ?assertEqual(
+       <<7, ?SN_REGACK, TopicId2:16, MsgId:16, 0:8>>,
+       receive_response(Socket)
+      ),
 
     send_subscribe_msg_short_topic(Socket, QoS, <<"Q2">>, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId0:16, MsgId:16, ReturnCode>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1,
+         CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId0:16, MsgId:16, ReturnCode>>,
+       receive_response(Socket)
+      ),
 
     send_unsubscribe_msg_normal_topic(Socket, <<"Q2">>, MsgId),
     ?assertEqual(<<4, ?SN_UNSUBACK, MsgId:16>>, receive_response(Socket)),
@@ -352,8 +397,12 @@ t_subscribe_case07(_) ->
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
 
     send_subscribe_msg_predefined_topic(Socket, QoS, TopicId1, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, ?SN_INVALID_TOPIC_ID:16, MsgId:16, ?SN_RC_INVALID_TOPIC_ID>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         ?SN_INVALID_TOPIC_ID:16, MsgId:16, ?SN_RC_INVALID_TOPIC_ID>>,
+       receive_response(Socket)
+      ),
 
     send_unsubscribe_msg_predefined_topic(Socket, TopicId2, MsgId),
     ?assertEqual(<<4, ?SN_UNSUBACK, MsgId:16>>, receive_response(Socket)),
@@ -375,8 +424,12 @@ t_subscribe_case08(_) ->
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
 
     send_subscribe_msg_reserved_topic(Socket, QoS, TopicId2, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, ?SN_INVALID_TOPIC_ID:16, MsgId:16, ?SN_RC_NOT_SUPPORTED>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         ?SN_INVALID_TOPIC_ID:16, MsgId:16, ?SN_RC_NOT_SUPPORTED>>,
+       receive_response(Socket)
+      ),
 
     send_disconnect_msg(Socket, undefined),
     ?assertEqual(<<2, ?SN_DISCONNECT>>, receive_response(Socket)),
@@ -400,15 +453,21 @@ t_publish_negqos_case09(_) ->
 
 
     send_subscribe_msg_normal_topic(Socket, QoS, Topic, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId1:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-                 receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId1:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
     MsgId1 = 3,
     Payload1 = <<20, 21, 22, 23>>,
     send_publish_msg_normal_topic(Socket, NegQoS, MsgId1, TopicId1, Payload1),
     timer:sleep(100),
     case ?ENABLE_QOS3 of
         true  ->
-            Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId1:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
+            Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+                     Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+                     TopicId1:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
             What = receive_response(Socket),
             ?assertEqual(Eexp, What)
     end,
@@ -441,7 +500,9 @@ t_publish_qos0_case01(_) ->
     send_publish_msg_normal_topic(Socket, QoS, MsgId1, TopicId1, Payload1),
     timer:sleep(100),
 
-    Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId1:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
+    Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+             Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+             TopicId1:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
     What = receive_response(Socket),
     ?assertEqual(Eexp, What),
 
@@ -463,15 +524,21 @@ t_publish_qos0_case02(_) ->
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
 
     send_subscribe_msg_predefined_topic(Socket, QoS, PredefTopicId, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, PredefTopicId:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         PredefTopicId:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
 
     MsgId1 = 3,
     Payload1 = <<20, 21, 22, 23>>,
     send_publish_msg_predefined_topic(Socket, QoS, MsgId1, PredefTopicId, Payload1),
     timer:sleep(100),
 
-    Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_PREDEFINED_TOPIC:2, PredefTopicId:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
+    Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+             Will:1, CleanSession:1, ?SN_PREDEFINED_TOPIC:2,
+             PredefTopicId:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
     What = receive_response(Socket),
     ?assertEqual(Eexp, What),
 
@@ -494,15 +561,21 @@ t_publish_qos0_case3(_) ->
 
     Topic = <<"/a/b/c">>,
     send_subscribe_msg_normal_topic(Socket, QoS, Topic, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
 
     MsgId1 = 3,
     Payload1 = <<20, 21, 22, 23>>,
     send_publish_msg_predefined_topic(Socket, QoS, MsgId1, TopicId, Payload1),
     timer:sleep(100),
 
-    Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
+    Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+             Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+             TopicId:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
     What = receive_response(Socket),
     ?assertEqual(Eexp, What),
 
@@ -524,8 +597,12 @@ t_publish_qos0_case04(_) ->
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
 
     send_subscribe_msg_normal_topic(Socket, QoS, <<"#">>, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId0:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId0:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
 
     MsgId1 = 2,
     Payload1 = <<20, 21, 22, 23>>,
@@ -533,7 +610,9 @@ t_publish_qos0_case04(_) ->
     send_publish_msg_short_topic(Socket, QoS, MsgId1, Topic, Payload1),
     timer:sleep(100),
 
-    Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_SHORT_TOPIC:2, Topic/binary, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
+    Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+             Will:1, CleanSession:1, ?SN_SHORT_TOPIC:2,
+             Topic/binary, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
     What = receive_response(Socket),
     ?assertEqual(Eexp, What),
 
@@ -554,8 +633,12 @@ t_publish_qos0_case05(_) ->
     send_connect_msg(Socket, ClientId),
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
     send_subscribe_msg_short_topic(Socket, QoS, <<"/#">>, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId0:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId0:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
     send_disconnect_msg(Socket, undefined),
     ?assertEqual(<<2, ?SN_DISCONNECT>>, receive_response(Socket)),
 
@@ -577,15 +660,21 @@ t_publish_qos0_case06(_) ->
 
     Topic = <<"abc">>,
     send_subscribe_msg_normal_topic(Socket, QoS, Topic, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId1:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId1:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
 
     MsgId1 = 3,
     Payload1 = <<20, 21, 22, 23>>,
     send_publish_msg_normal_topic(Socket, QoS, MsgId1, TopicId1, Payload1),
     timer:sleep(100),
 
-    Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId1:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
+    Eexp = <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+             Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+             TopicId1:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
     What = receive_response(Socket),
     ?assertEqual(Eexp, What),
 
@@ -607,16 +696,24 @@ t_publish_qos1_case01(_) ->
     send_connect_msg(Socket, ClientId),
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
     send_subscribe_msg_normal_topic(Socket, QoS, Topic, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1,
-                   ?SN_NORMAL_TOPIC:2, TopicId1:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-                 receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId1:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
 
     Payload1 = <<20, 21, 22, 23>>,
     send_publish_msg_normal_topic(Socket, QoS, MsgId, TopicId1, Payload1),
-    ?assertEqual(<<7, ?SN_PUBACK, TopicId1:16, MsgId:16, ?SN_RC_ACCEPTED>>, receive_response(Socket)),
+    ?assertEqual(<<7, ?SN_PUBACK, TopicId1:16,
+                   MsgId:16, ?SN_RC_ACCEPTED>>, receive_response(Socket)),
     timer:sleep(100),
 
-    ?assertEqual(<<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId1:16, MsgId:16, <<20, 21, 22, 23>>/binary>>, receive_response(Socket)),
+    ?assertEqual(<<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+                   Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+                   TopicId1:16, MsgId:16, <<20, 21, 22, 23>>/binary>>,
+                 receive_response(Socket)
+                ),
 
     send_disconnect_msg(Socket, undefined),
     gen_udp:close(Socket).
@@ -635,12 +732,17 @@ t_publish_qos1_case02(_) ->
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
 
     send_subscribe_msg_predefined_topic(Socket, QoS, PredefTopicId, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, PredefTopicId:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         PredefTopicId:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
 
     Payload1 = <<20, 21, 22, 23>>,
     send_publish_msg_predefined_topic(Socket, QoS, MsgId, PredefTopicId, Payload1),
-    ?assertEqual(<<7, ?SN_PUBACK, PredefTopicId:16, MsgId:16, ?SN_RC_ACCEPTED>>, receive_response(Socket)),
+    ?assertEqual(<<7, ?SN_PUBACK, PredefTopicId:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+                 receive_response(Socket)),
     timer:sleep(100),
 
     send_disconnect_msg(Socket, undefined),
@@ -655,7 +757,8 @@ t_publish_qos1_case03(_) ->
     send_connect_msg(Socket, ClientId),
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
     send_publish_msg_predefined_topic(Socket, QoS, MsgId, tid(5), <<20, 21, 22, 23>>),
-    ?assertEqual(<<7, ?SN_PUBACK, TopicId5:16, MsgId:16, ?SN_RC_INVALID_TOPIC_ID>>, receive_response(Socket)),
+    ?assertEqual(<<7, ?SN_PUBACK, TopicId5:16, MsgId:16, ?SN_RC_INVALID_TOPIC_ID>>,
+                 receive_response(Socket)),
 
     send_disconnect_msg(Socket, undefined),
     ?assertEqual(<<2, ?SN_DISCONNECT>>, receive_response(Socket)),
@@ -674,15 +777,19 @@ t_publish_qos1_case04(_) ->
     send_connect_msg(Socket, ClientId),
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
     send_subscribe_msg_short_topic(Socket, QoS, <<"ab">>, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1,
-                   ?SN_NORMAL_TOPIC:2, TopicId0:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-                 receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId0:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
 
     Topic = <<"ab">>,
     Payload1 = <<20, 21, 22, 23>>,
     send_publish_msg_short_topic(Socket, QoS, MsgId, Topic, Payload1),
     <<TopicIdShort:16>> = Topic,
-    ?assertEqual(<<7, ?SN_PUBACK, TopicIdShort:16, MsgId:16, ?SN_RC_ACCEPTED>>, receive_response(Socket)),
+    ?assertEqual(<<7, ?SN_PUBACK, TopicIdShort:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+                 receive_response(Socket)),
     timer:sleep(100),
 
     send_disconnect_msg(Socket, undefined),
@@ -708,7 +815,9 @@ t_publish_qos1_case05(_) ->
 
     send_publish_msg_short_topic(Socket, QoS, MsgId, <<"/#">>, <<20, 21, 22, 23>>),
     <<TopicIdShort:16>> = <<"/#">>,
-    ?assertEqual(<<7, ?SN_PUBACK, TopicIdShort:16, MsgId:16, ?SN_RC_NOT_SUPPORTED>>, receive_response(Socket)),
+    ?assertEqual(<<7, ?SN_PUBACK, TopicIdShort:16,
+                   MsgId:16, ?SN_RC_NOT_SUPPORTED>>,
+                 receive_response(Socket)),
 
     send_disconnect_msg(Socket, undefined),
     ?assertEqual(<<2, ?SN_DISCONNECT>>, receive_response(Socket)),
@@ -734,7 +843,8 @@ t_publish_qos1_case06(_) ->
 
     send_publish_msg_short_topic(Socket, QoS, MsgId, <<"/+">>, <<20, 21, 22, 23>>),
     <<TopicIdShort:16>> = <<"/+">>,
-    ?assertEqual(<<7, ?SN_PUBACK, TopicIdShort:16, MsgId:16, ?SN_RC_NOT_SUPPORTED>>, receive_response(Socket)),
+    ?assertEqual(<<7, ?SN_PUBACK, TopicIdShort:16,
+                   MsgId:16, ?SN_RC_NOT_SUPPORTED>>, receive_response(Socket)),
 
     send_disconnect_msg(Socket, undefined),
     ?assertEqual(<<2, ?SN_DISCONNECT>>, receive_response(Socket)),
@@ -761,7 +871,12 @@ t_publish_qos2_case01(_) ->
     send_publish_msg_normal_topic(Socket, QoS, MsgId, TopicId1, Payload1),
     ?assertEqual(<<4, ?SN_PUBREC, MsgId:16>>, receive_response(Socket)),
     send_pubrel_msg(Socket, MsgId),
-    ?assertEqual(<<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId1:16, 1:16, <<20, 21, 22, 23>>/binary>>, receive_response(Socket)),
+    ?assertEqual(
+       <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+         TopicId1:16, 1:16, <<20, 21, 22, 23>>/binary>>,
+       receive_response(Socket)
+      ),
     ?assertEqual(<<4, ?SN_PUBCOMP, MsgId:16>>, receive_response(Socket)),
     timer:sleep(100),
 
@@ -783,15 +898,23 @@ t_publish_qos2_case02(_) ->
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
 
     send_subscribe_msg_predefined_topic(Socket, QoS, PredefTopicId, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, ?FNU:1, QoS:2, ?FNU:5, PredefTopicId:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, ?FNU:1, QoS:2,
+         ?FNU:5, PredefTopicId:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
 
     Payload1 = <<20, 21, 22, 23>>,
     send_publish_msg_predefined_topic(Socket, QoS, MsgId, PredefTopicId, Payload1),
     ?assertEqual(<<4, ?SN_PUBREC, MsgId:16>>, receive_response(Socket)),
     send_pubrel_msg(Socket, MsgId),
 
-    ?assertEqual(<<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_PREDEFINED_TOPIC :2, PredefTopicId:16, 1:16, <<20, 21, 22, 23>>/binary>>, receive_response(Socket)),
+    ?assertEqual(
+       <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_PREDEFINED_TOPIC:2,
+         PredefTopicId:16, 1:16, <<20, 21, 22, 23>>/binary>>,
+       receive_response(Socket)
+      ),
     ?assertEqual(<<4, ?SN_PUBCOMP, MsgId:16>>, receive_response(Socket)),
 
     timer:sleep(100),
@@ -814,15 +937,23 @@ t_publish_qos2_case03(_) ->
     ?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
 
     send_subscribe_msg_normal_topic(Socket, QoS, <<"/#">>, MsgId),
-    ?assertEqual(<<8, ?SN_SUBACK, ?FNU:1, QoS:2, ?FNU:5, TopicId0:16, MsgId:16, ?SN_RC_ACCEPTED>>,
-        receive_response(Socket)),
+    ?assertEqual(
+       <<8, ?SN_SUBACK, ?FNU:1, QoS:2,
+         ?FNU:5, TopicId0:16, MsgId:16, ?SN_RC_ACCEPTED>>,
+       receive_response(Socket)
+      ),
 
     Payload1 = <<20, 21, 22, 23>>,
     send_publish_msg_short_topic(Socket, QoS, MsgId, <<"/a">>, Payload1),
     ?assertEqual(<<4, ?SN_PUBREC, MsgId:16>>, receive_response(Socket)),
     send_pubrel_msg(Socket, MsgId),
 
-    ?assertEqual(<<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_SHORT_TOPIC :2, <<"/a">>/binary, 1:16, <<20, 21, 22, 23>>/binary>>, receive_response(Socket)),
+    ?assertEqual(
+       <<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+         Will:1, CleanSession:1, ?SN_SHORT_TOPIC:2,
+         <<"/a">>/binary, 1:16, <<20, 21, 22, 23>>/binary>>,
+       receive_response(Socket)
+      ),
     ?assertEqual(<<4, ?SN_PUBCOMP, MsgId:16>>, receive_response(Socket)),
     timer:sleep(100),
 
@@ -1095,7 +1226,12 @@ t_will_case06(_) ->
 %    send_register_msg(Socket, TopicName1, MsgId1),
 %    ?assertEqual(<<7, ?SN_REGACK, TopicId1:16, MsgId1:16, 0:8>>, receive_response(Socket)),
 %    send_subscribe_msg_predefined_topic(Socket, QoS, TopicId1, MsgId),
-%    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, WillBit:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId1:16, MsgId:16, ReturnCode>>, receive_response(Socket)),
+%    ?assertEqual(
+%       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+%         WillBit:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+%         TopicId1:16, MsgId:16, ReturnCode>>,
+%       receive_response(Socket)
+%      ),
 %
 %    % goto asleep state
 %    send_disconnect_msg(Socket, 1),
@@ -1121,7 +1257,9 @@ t_will_case06(_) ->
 %
 %    %% the broker should sent dl msgs to the awake client before sending the pingresp
 %    UdpData = receive_response(Socket),
-%    MsgId_udp = check_publish_msg_on_udp({Dup, QoS, Retain, WillBit, CleanSession, ?SN_NORMAL_TOPIC, TopicId1, Payload1}, UdpData),
+%    MsgId_udp = check_publish_msg_on_udp(
+%                  {Dup, QoS, Retain, WillBit, CleanSession,
+%                   ?SN_NORMAL_TOPIC, TopicId1, Payload1}, UdpData),
 %    send_puback_msg(Socket, TopicId1, MsgId_udp),
 %
 %    %% check the pingresp is received at last
@@ -1153,8 +1291,12 @@ t_will_case06(_) ->
 %    CleanSession = 0,
 %    ReturnCode = 0,
 %    send_subscribe_msg_normal_topic(Socket, QoS, TopicName1, MsgId1),
-%    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, WillBit:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId0:16, MsgId1:16, ReturnCode>>,
-%        receive_response(Socket)),
+%    ?assertEqual(
+%       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+%         WillBit:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+%         TopicId0:16, MsgId1:16, ReturnCode>>,
+%       receive_response(Socket)
+%      ),
 %
 %    % goto asleep state
 %    send_disconnect_msg(Socket, 1),
@@ -1188,11 +1330,15 @@ t_will_case06(_) ->
 %    send_regack_msg(Socket, TopicIdNew, MsgId3),
 %
 %    UdpData2 = receive_response(Socket),
-%    MsgId_udp2 = check_publish_msg_on_udp({Dup, QoS, Retain, WillBit, CleanSession, ?SN_NORMAL_TOPIC, TopicIdNew, Payload1}, UdpData2),
+%    MsgId_udp2 = check_publish_msg_on_udp(
+%                   {Dup, QoS, Retain, WillBit, CleanSession,
+%                    ?SN_NORMAL_TOPIC, TopicIdNew, Payload1}, UdpData2),
 %    send_puback_msg(Socket, TopicIdNew, MsgId_udp2),
 %
 %    UdpData3 = receive_response(Socket),
-%    MsgId_udp3 = check_publish_msg_on_udp({Dup, QoS, Retain, WillBit, CleanSession, ?SN_NORMAL_TOPIC, TopicIdNew, Payload2}, UdpData3),
+%    MsgId_udp3 = check_publish_msg_on_udp(
+%                   {Dup, QoS, Retain, WillBit, CleanSession,
+%                    ?SN_NORMAL_TOPIC, TopicIdNew, Payload2}, UdpData3),
 %    send_puback_msg(Socket, TopicIdNew, MsgId_udp3),
 %
 %    ?assertEqual(<<2, ?SN_PINGRESP>>, receive_response(Socket)),
@@ -1228,8 +1374,12 @@ receive_publish(Socket) ->
 %    CleanSession = 0,
 %    ReturnCode = 0,
 %    send_subscribe_msg_normal_topic(Socket, QoS, TopicName1, MsgId1),
-%    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, WillBit:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId0:16, MsgId1:16, ReturnCode>>,
-%        receive_response(Socket)),
+%    ?assertEqual(
+%       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+%         WillBit:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+%         TopicId0:16, MsgId1:16, ReturnCode>>,
+%       receive_response(Socket)
+%      ),
 %
 %    % goto asleep state
 %    SleepDuration = 30,
@@ -1262,12 +1412,16 @@ receive_publish(Socket) ->
 %    send_regack_msg(Socket, TopicIdNew, MsgId_reg),
 %
 %    UdpData2 = receive_response(Socket),
-%    MsgId2 = check_publish_msg_on_udp({Dup, QoS, Retain, WillBit, CleanSession, ?SN_NORMAL_TOPIC, TopicIdNew, Payload2}, UdpData2),
+%    MsgId2 = check_publish_msg_on_udp(
+%               {Dup, QoS, Retain, WillBit, CleanSession,
+%                ?SN_NORMAL_TOPIC, TopicIdNew, Payload2}, UdpData2),
 %    send_puback_msg(Socket, TopicIdNew, MsgId2),
 %    timer:sleep(50),
 %
 %    UdpData3 = wrap_receive_response(Socket),
-%    MsgId3 = check_publish_msg_on_udp({Dup, QoS, Retain, WillBit, CleanSession, ?SN_NORMAL_TOPIC, TopicIdNew, Payload3}, UdpData3),
+%    MsgId3 = check_publish_msg_on_udp(
+%               {Dup, QoS, Retain, WillBit, CleanSession,
+%                ?SN_NORMAL_TOPIC, TopicIdNew, Payload3}, UdpData3),
 %    send_puback_msg(Socket, TopicIdNew, MsgId3),
 %    timer:sleep(50),
 %
@@ -1334,7 +1488,9 @@ receive_publish(Socket) ->
 %    send_pingreq_msg(Socket, ClientId),
 %
 %    UdpData = wrap_receive_response(Socket),
-%    MsgId_udp = check_publish_msg_on_udp({Dup, QoS, Retain, WillBit, CleanSession, ?SN_NORMAL_TOPIC, TopicId_tom, Payload1}, UdpData),
+%    MsgId_udp = check_publish_msg_on_udp(
+%                  {Dup, QoS, Retain, WillBit, CleanSession,
+%                   ?SN_NORMAL_TOPIC, TopicId_tom, Payload1}, UdpData),
 %    send_pubrec_msg(Socket, MsgId_udp),
 %    ?assertMatch(<<_:8, ?SN_PUBREL:8, _/binary>>, receive_response(Socket)),
 %    send_pubcomp_msg(Socket, MsgId_udp),
@@ -1369,8 +1525,12 @@ receive_publish(Socket) ->
 %    send_register_msg(Socket, TopicName_tom, MsgId1),
 %    TopicId_tom = check_regack_msg_on_udp(MsgId1, receive_response(Socket)),
 %    send_subscribe_msg_predefined_topic(Socket, QoS, TopicId_tom, MsgId1),
-%    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, WillBit:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId_tom:16, MsgId1:16, ReturnCode>>,
-%        receive_response(Socket)),
+%    ?assertEqual(
+%       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+%         WillBit:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+%         TopicId_tom:16, MsgId1:16, ReturnCode>>,
+%       receive_response(Socket)
+%      ),
 %
 %    % goto asleep state
 %    send_disconnect_msg(Socket, SleepDuration),
@@ -1448,8 +1608,12 @@ receive_publish(Socket) ->
 %    CleanSession = 0,
 %    ReturnCode = 0,
 %    send_subscribe_msg_normal_topic(Socket, QoS, TopicName1, MsgId1),
-%    ?assertEqual(<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, WillBit:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, TopicId0:16, MsgId1:16, ReturnCode>>,
-%    receive_response(Socket)),
+%    ?assertEqual(
+%       <<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1,
+%         WillBit:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
+%         TopicId0:16, MsgId1:16, ReturnCode>>,
+%       receive_response(Socket)
+%      ),
 %    % goto asleep state
 %    SleepDuration = 30,
 %    send_disconnect_msg(Socket, SleepDuration),
@@ -1483,7 +1647,9 @@ receive_publish(Socket) ->
 %        udp_receive_timeout ->
 %            ok;
 %        UdpData2 ->
-%            MsgId2 = check_publish_msg_on_udp({Dup, QoS, Retain, WillBit, CleanSession, ?SN_NORMAL_TOPIC, TopicIdNew, Payload2}, UdpData2),
+%            MsgId2 = check_publish_msg_on_udp(
+%                       {Dup, QoS, Retain, WillBit, CleanSession,
+%                        ?SN_NORMAL_TOPIC, TopicIdNew, Payload2}, UdpData2),
 %            send_puback_msg(Socket, TopicIdNew, MsgId2)
 %    end,
 %    timer:sleep(100),
@@ -1492,7 +1658,9 @@ receive_publish(Socket) ->
 %        udp_receive_timeout ->
 %            ok;
 %        UdpData3 ->
-%            MsgId3 = check_publish_msg_on_udp({Dup, QoS, Retain, WillBit, CleanSession, ?SN_NORMAL_TOPIC, TopicIdNew, Payload3}, UdpData3),
+%            MsgId3 = check_publish_msg_on_udp(
+%                       {Dup, QoS, Retain, WillBit, CleanSession,
+%                        ?SN_NORMAL_TOPIC, TopicIdNew, Payload3}, UdpData3),
 %            send_puback_msg(Socket, TopicIdNew, MsgId3)
 %    end,
 %    timer:sleep(100),
@@ -1510,7 +1678,8 @@ receive_publish(Socket) ->
 %
 %    %% send PINGREQ again to enter awake state
 %    send_pingreq_msg(Socket, ClientId),
-%    %% will not receive any buffered PUBLISH messages buffered before last awake, only receive PINGRESP here
+%    %% will not receive any buffered PUBLISH messages buffered before last
+%    %% awake, only receive PINGRESP here
 %    ?assertEqual(<<2, ?SN_PINGRESP>>, receive_response(Socket)),
 %
 %    gen_udp:close(Socket).
@@ -1913,8 +2082,11 @@ check_dispatched_message(Dup, QoS, Retain, TopicIdType, TopicId, Payload, Socket
     PubMsg = receive_response(Socket),
     Length = 7 + byte_size(Payload),
     ?LOG("check_dispatched_message ~p~n", [PubMsg]),
-    ?LOG("expected ~p xx ~p~n", [<<Length, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, ?FNU:2, TopicIdType:2, TopicId:16>>, Payload]),
-    <<Length, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, ?FNU:2, TopicIdType:2, TopicId:16, MsgId:16, Payload/binary>> = PubMsg,
+    ?LOG("expected ~p xx ~p~n",
+         [<<Length, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+            ?FNU:2, TopicIdType:2, TopicId:16>>, Payload]),
+    <<Length, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+      ?FNU:2, TopicIdType:2, TopicId:16, MsgId:16, Payload/binary>> = PubMsg,
     case QoS of
         0 -> ok;
         1 -> send_puback_msg(Socket, TopicId, MsgId);
@@ -1926,11 +2098,13 @@ check_dispatched_message(Dup, QoS, Retain, TopicIdType, TopicId, Payload, Socket
 get_udp_broadcast_address() ->
     "255.255.255.255".
 
-check_publish_msg_on_udp({Dup, QoS, Retain, WillBit, CleanSession, TopicType, TopicId, Payload}, UdpData) ->
+check_publish_msg_on_udp({Dup, QoS, Retain, WillBit, CleanSession,
+                          TopicType, TopicId, Payload}, UdpData) ->
     <<HeaderUdp:5/binary, MsgId:16, PayloadIn/binary>> = UdpData,
     ct:pal("UdpData: ~p, Payload: ~p, PayloadIn: ~p", [UdpData, Payload, PayloadIn]),
     Size9 = byte_size(Payload) + 7,
-    Eexp = <<Size9:8, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, WillBit:1, CleanSession:1, TopicType:2, TopicId:16>>,
+    Eexp = <<Size9:8, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1,
+             WillBit:1, CleanSession:1, TopicType:2, TopicId:16>>,
     ?assertEqual(Eexp, HeaderUdp),     % mqtt-sn header should be same
     ?assertEqual(Payload, PayloadIn),  % payload should be same
     MsgId.