Explorar o código

Merge pull request #4890 from emqx/fix-non-running-test-suite

test: Enable non-running test suite
Zaiming (Stone) Shi %!s(int64=4) %!d(string=hai) anos
pai
achega
4b22b4dccd
Modificáronse 4 ficheiros con 71 adicións e 78 borrados
  1. 0 0
      scripts/update_appup.escript
  2. 63 74
      src/emqx.appup.src
  3. 3 3
      src/emqx_channel.erl
  4. 5 1
      test/mqtt_protocol_v5_SUITE.erl

+ 0 - 0
scripts/update_appup.escript


+ 63 - 74
src/emqx.appup.src

@@ -1,76 +1,65 @@
 %% -*- mode: erlang -*-
 {VSN,
- [
-   {"4.3.2", [
-     {load_module, emqx_http_lib, brutal_purge, soft_purge, []}
-   ]},
-   {"4.3.1", [
-     {load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
-     {load_module, emqx_connection, brutal_purge, soft_purge, []},
-     {load_module, emqx_frame, brutal_purge, soft_purge, []},
-     {load_module, emqx_cm, brutal_purge, soft_purge, []},
-     {load_module, emqx_congestion, brutal_purge, soft_purge, []},
-     {load_module, emqx_node_dump, brutal_purge, soft_purge, []},
-     {load_module, emqx_channel, brutal_purge, soft_purge, []},
-     {load_module, emqx_app, brutal_purge, soft_purge, []},
-     {load_module, emqx_plugins, brutal_purge, soft_purge, []},
-     {load_module, emqx_logger_textfmt, brutal_purge, soft_purge, []},
-     {load_module, emqx_http_lib, brutal_purge, soft_purge, []}
-   ]},
-   {"4.3.0", [
-     {load_module, emqx_logger_jsonfmt, brutal_purge, soft_purge, []},
-     {load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
-     {load_module, emqx_congestion, brutal_purge, soft_purge, []},
-     {load_module, emqx_connection, brutal_purge, soft_purge, []},
-     {load_module, emqx_frame, brutal_purge, soft_purge, []},
-     {load_module, emqx_trie, brutal_purge, soft_purge, []},
-     {load_module, emqx_cm, brutal_purge, soft_purge, []},
-     {load_module, emqx_node_dump, brutal_purge, soft_purge, []},
-     {load_module, emqx_channel, brutal_purge, soft_purge, []},
-     {load_module, emqx_app, brutal_purge, soft_purge, []},
-     {load_module, emqx_plugins, brutal_purge, soft_purge, []},
-     {load_module, emqx_logger_textfmt, brutal_purge, soft_purge, []},
-     {load_module, emqx_metrics, brutal_purge, soft_purge, []},
-     {apply, {emqx_metrics, upgrade_retained_delayed_counter_type, []}},
-     {load_module, emqx_http_lib, brutal_purge, soft_purge, []}
-   ]},
-   {<<".*">>, []}
- ],
- [
-   {"4.3.2", [
-     {load_module, emqx_http_lib, brutal_purge, soft_purge, []}
-   ]},
-   {"4.3.1", [
-     {load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
-     {load_module, emqx_connection, brutal_purge, soft_purge, []},
-     {load_module, emqx_frame, brutal_purge, soft_purge, []},
-     {load_module, emqx_cm, brutal_purge, soft_purge, []},
-     {load_module, emqx_congestion, brutal_purge, soft_purge, []},
-     {load_module, emqx_node_dump, brutal_purge, soft_purge, []},
-     {load_module, emqx_channel, brutal_purge, soft_purge, []},
-     {load_module, emqx_app, brutal_purge, soft_purge, []},
-     {load_module, emqx_plugins, brutal_purge, soft_purge, []},
-     {load_module, emqx_logger_textfmt, brutal_purge, soft_purge, []},
-     {load_module, emqx_http_lib, brutal_purge, soft_purge, []}
-   ]},
-   {"4.3.0", [
-     {load_module, emqx_logger_jsonfmt, brutal_purge, soft_purge, []},
-     {load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
-     {load_module, emqx_connection, brutal_purge, soft_purge, []},
-     {load_module, emqx_congestion, brutal_purge, soft_purge, []},
-     {load_module, emqx_frame, brutal_purge, soft_purge, []},
-     {load_module, emqx_trie, brutal_purge, soft_purge, []},
-     {load_module, emqx_cm, brutal_purge, soft_purge, []},
-     {load_module, emqx_node_dump, brutal_purge, soft_purge, []},
-     {load_module, emqx_channel, brutal_purge, soft_purge, []},
-     {load_module, emqx_app, brutal_purge, soft_purge, []},
-     {load_module, emqx_plugins, brutal_purge, soft_purge, []},
-     {load_module, emqx_logger_textfmt, brutal_purge, soft_purge, []},
-     %% Just load the module. We don't need to change the 'messages.retained'
-     %% and 'messages.retained' counter type.
-     {load_module, emqx_metrics, brutal_purge, soft_purge, []},
-     {load_module, emqx_http_lib, brutal_purge, soft_purge, []}
-   ]},
-   {<<".*">>, []}
- ]
-}.
+  [{"4.3.2",
+    [{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
+     {load_module,emqx_channel,brutal_purge,soft_purge,[]}]},
+   {"4.3.1",
+    [{load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
+     {load_module,emqx_connection,brutal_purge,soft_purge,[]},
+     {load_module,emqx_frame,brutal_purge,soft_purge,[]},
+     {load_module,emqx_cm,brutal_purge,soft_purge,[]},
+     {load_module,emqx_congestion,brutal_purge,soft_purge,[]},
+     {load_module,emqx_node_dump,brutal_purge,soft_purge,[]},
+     {load_module,emqx_channel,brutal_purge,soft_purge,[]},
+     {load_module,emqx_app,brutal_purge,soft_purge,[]},
+     {load_module,emqx_plugins,brutal_purge,soft_purge,[]},
+     {load_module,emqx_logger_textfmt,brutal_purge,soft_purge,[]},
+     {load_module,emqx_http_lib,brutal_purge,soft_purge,[]}]},
+   {"4.3.0",
+    [{load_module,emqx_logger_jsonfmt,brutal_purge,soft_purge,[]},
+     {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
+     {load_module,emqx_congestion,brutal_purge,soft_purge,[]},
+     {load_module,emqx_connection,brutal_purge,soft_purge,[]},
+     {load_module,emqx_frame,brutal_purge,soft_purge,[]},
+     {load_module,emqx_trie,brutal_purge,soft_purge,[]},
+     {load_module,emqx_cm,brutal_purge,soft_purge,[]},
+     {load_module,emqx_node_dump,brutal_purge,soft_purge,[]},
+     {load_module,emqx_channel,brutal_purge,soft_purge,[]},
+     {load_module,emqx_app,brutal_purge,soft_purge,[]},
+     {load_module,emqx_plugins,brutal_purge,soft_purge,[]},
+     {load_module,emqx_logger_textfmt,brutal_purge,soft_purge,[]},
+     {load_module,emqx_metrics,brutal_purge,soft_purge,[]},
+     {apply,{emqx_metrics,upgrade_retained_delayed_counter_type,[]}},
+     {load_module,emqx_http_lib,brutal_purge,soft_purge,[]}]},
+   {<<".*">>,[]}],
+  [{"4.3.2",
+    [{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
+     {load_module,emqx_channel,brutal_purge,soft_purge,[]}]},
+   {"4.3.1",
+    [{load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
+     {load_module,emqx_connection,brutal_purge,soft_purge,[]},
+     {load_module,emqx_frame,brutal_purge,soft_purge,[]},
+     {load_module,emqx_cm,brutal_purge,soft_purge,[]},
+     {load_module,emqx_congestion,brutal_purge,soft_purge,[]},
+     {load_module,emqx_node_dump,brutal_purge,soft_purge,[]},
+     {load_module,emqx_channel,brutal_purge,soft_purge,[]},
+     {load_module,emqx_app,brutal_purge,soft_purge,[]},
+     {load_module,emqx_plugins,brutal_purge,soft_purge,[]},
+     {load_module,emqx_logger_textfmt,brutal_purge,soft_purge,[]},
+     {load_module,emqx_http_lib,brutal_purge,soft_purge,[]}]},
+   {"4.3.0",
+    [{load_module,emqx_logger_jsonfmt,brutal_purge,soft_purge,[]},
+     {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
+     {load_module,emqx_connection,brutal_purge,soft_purge,[]},
+     {load_module,emqx_congestion,brutal_purge,soft_purge,[]},
+     {load_module,emqx_frame,brutal_purge,soft_purge,[]},
+     {load_module,emqx_trie,brutal_purge,soft_purge,[]},
+     {load_module,emqx_cm,brutal_purge,soft_purge,[]},
+     {load_module,emqx_node_dump,brutal_purge,soft_purge,[]},
+     {load_module,emqx_channel,brutal_purge,soft_purge,[]},
+     {load_module,emqx_app,brutal_purge,soft_purge,[]},
+     {load_module,emqx_plugins,brutal_purge,soft_purge,[]},
+     {load_module,emqx_logger_textfmt,brutal_purge,soft_purge,[]},
+     {load_module,emqx_metrics,brutal_purge,soft_purge,[]},
+     {load_module,emqx_http_lib,brutal_purge,soft_purge,[]}]},
+   {<<".*">>,[]}]}.

+ 3 - 3
src/emqx_channel.erl

@@ -407,7 +407,8 @@ handle_in(Packet = ?SUBSCRIBE_PACKET(PacketId, Properties, TopicFilters),
     case emqx_packet:check(Packet) of
         ok ->
             TopicFilters0 = parse_topic_filters(TopicFilters),
-            TupleTopicFilters0 = check_sub_acls(TopicFilters0, Channel),
+            TopicFilters1 = put_subid_in_subopts(Properties, TopicFilters0),
+            TupleTopicFilters0 = check_sub_acls(TopicFilters1, Channel),
             case emqx_zone:get_env(Zone, acl_deny_action, ignore) =:= disconnect andalso
                  lists:any(fun({_TopicFilter, ReasonCode}) ->
                                     ReasonCode =:= ?RC_NOT_AUTHORIZED
@@ -419,8 +420,7 @@ handle_in(Packet = ?SUBSCRIBE_PACKET(PacketId, Properties, TopicFilters),
                                       _Fun(lists:keyreplace(Key, 1, TupleList, Tuple), More);
                                 _Fun(TupleList, []) -> TupleList
                               end,
-                    TopicFilters1 = [ TopicFilter || {TopicFilter, 0} <- TupleTopicFilters0],
-                    TopicFilters2 = put_subid_in_subopts(Properties, TopicFilters1),
+                    TopicFilters2 = [ TopicFilter || {TopicFilter, 0} <- TupleTopicFilters0],
                     TopicFilters3 = run_hooks('client.subscribe',
                                               [ClientInfo, Properties],
                                               TopicFilters2),

+ 5 - 1
test/mqtt_protocol_v5_SUITE.erl

@@ -14,7 +14,7 @@
 %% limitations under the License.
 %%--------------------------------------------------------------------
 
--module(mqtt_protocol_v5_SUITE).
+-module(emqx_mqtt_protocol_v5_SUITE).
 
 -compile(export_all).
 -compile(nowarn_export_all).
@@ -37,6 +37,7 @@ init_per_suite(Config) ->
     %% Meck emqtt
     ok = meck:new(emqtt, [non_strict, passthrough, no_history, no_link]),
     %% Start Apps
+    emqx_ct_helpers:boot_modules(all),
     emqx_ct_helpers:start_apps([]),
     Config.
 
@@ -288,6 +289,9 @@ t_connect_emit_stats_timeout(_) ->
 
 %% [MQTT-3.1.2-22]
 t_connect_keepalive_timeout(_) ->
+    %% Prevent the emqtt client bringing us down on the disconnect.
+    process_flag(trap_exit, true),
+
     Keepalive = 2,
 
     {ok, Client} = emqtt:start_link([{proto_ver, v5},