From a0bf06caba064dad021a11946cf9bd9ad647117f Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Tue, 7 May 2024 17:02:45 +0800 Subject: [PATCH] chore: add test case for non-utf8 topic --- apps/emqx/test/emqx_connection_SUITE.erl | 11 +++++++++++ apps/emqx/test/emqx_ws_connection_SUITE.erl | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/emqx/test/emqx_connection_SUITE.erl b/apps/emqx/test/emqx_connection_SUITE.erl index 7fffa3374..ae927d570 100644 --- a/apps/emqx/test/emqx_connection_SUITE.erl +++ b/apps/emqx/test/emqx_connection_SUITE.erl @@ -336,6 +336,17 @@ t_handle_incoming(_) -> ), ?assertMatch({ok, _Out, _NState}, emqx_connection:handle_incoming(frame_error, st())). +t_handle_outing_non_utf8_topic(_) -> + Topic = <<"测试"/utf16>>, + Publish = ?PUBLISH_PACKET(0, Topic, 1), + StrictOff = #{version => 5, max_size => 16#FFFF, strict_mode => false}, + StOff = st(#{serialize => StrictOff}), + OffResult = emqx_connection:handle_outgoing(Publish, StOff), + ?assertMatch(ok, OffResult), + StrictOn = #{version => 5, max_size => 16#FFFF, strict_mode => true}, + StOn = st(#{serialize => StrictOn}), + ?assertError(frame_serialize_error, emqx_connection:handle_outgoing(Publish, StOn)). + t_with_channel(_) -> State = st(), ok = meck:expect(emqx_channel, handle_in, fun(_, _) -> ok end), diff --git a/apps/emqx/test/emqx_ws_connection_SUITE.erl b/apps/emqx/test/emqx_ws_connection_SUITE.erl index 59f201864..48303d278 100644 --- a/apps/emqx/test/emqx_ws_connection_SUITE.erl +++ b/apps/emqx/test/emqx_ws_connection_SUITE.erl @@ -540,7 +540,7 @@ t_parse_incoming_frame_error(_) -> t_handle_incomming_frame_error(_) -> FrameError = {frame_error, bad_qos}, - Serialize = emqx_frame:serialize_fun(#{version => 5, max_size => 16#FFFF}), + Serialize = emqx_frame:serialize_fun(#{version => 5, max_size => 16#FFFF, strict_mode => false}), {[{close, bad_qos}], _St} = ?ws_conn:handle_incoming(FrameError, st(#{serialize => Serialize})). % ?assertEqual(<<224,2,129,0>>, iolist_to_binary(IoData)).