Przeglądaj źródła

style: please elvis checks

Thales Macedo Garitezi 4 lat temu
rodzic
commit
e053700441

+ 12 - 4
apps/emqx_auth_mnesia/test/emqx_acl_mnesia_SUITE.erl

@@ -47,7 +47,9 @@ groups() ->
     ]}].
 
 init_per_suite(Config) ->
-    emqx_ct_helpers:start_apps([emqx_modules, emqx_management, emqx_auth_mnesia], fun set_special_configs/1),
+    emqx_ct_helpers:start_apps( [emqx_modules, emqx_management, emqx_auth_mnesia]
+                              , fun set_special_configs/1
+                              ),
     supervisor:terminate_child(emqx_auth_mnesia_sup, emqx_acl_mnesia_migrator),
     create_default_app(),
     Config.
@@ -151,7 +153,9 @@ run_acl_tests() ->
     timer:sleep(100),
     deny  = emqx_access_control:check_acl(User1, subscribe,   <<"topic/mix">>),
     allow = emqx_access_control:check_acl(User1, publish,     <<"topic/mix">>),
-    ok = emqx_acl_mnesia_db:add_acl({clientid, <<"test_clientid">>}, <<"topic/mix">>, pubsub, allow),
+    ok = emqx_acl_mnesia_db:add_acl( {clientid, <<"test_clientid">>}
+                                   , <<"topic/mix">>, pubsub, allow
+                                   ),
     timer:sleep(100),
     allow = emqx_access_control:check_acl(User1, subscribe,   <<"topic/mix">>),
     allow = emqx_access_control:check_acl(User1, publish,     <<"topic/mix">>),
@@ -411,8 +415,12 @@ t_rest_api(_Config) ->
 
 create_conflicting_records() ->
     Records = [
-        #?ACL_TABLE{filter = {{clientid,<<"client6">>}, <<"t">>}, action = pubsub, access = deny, created_at = 0},
-        #?ACL_TABLE{filter = {{clientid,<<"client5">>}, <<"t">>}, action = pubsub, access = deny, created_at = 1},
+        #?ACL_TABLE{ filter = {{clientid,<<"client6">>}, <<"t">>}
+                   , action = pubsub, access = deny, created_at = 0
+                   },
+        #?ACL_TABLE{ filter = {{clientid,<<"client5">>}, <<"t">>}
+                   , action = pubsub, access = deny, created_at = 1
+                   },
         #?ACL_TABLE2{who = {clientid,<<"client5">>}, rules = [{allow, sub, <<"t">>, 2}]}
     ],
     mnesia:transaction(fun() -> lists:foreach(fun mnesia:write/1, Records) end).

+ 2 - 1
apps/emqx_management/test/emqx_mgmt_SUITE.erl

@@ -304,7 +304,8 @@ t_listeners_cmd_new(_) ->
       ),
     ?assertEqual(
        emqx_mgmt_cli:listeners(["restart", "bad:listener:identifier"]),
-       "Failed to restart bad:listener:identifier listener: {no_such_listener,\"bad:listener:identifier\"}\n"
+       "Failed to restart bad:listener:identifier listener:"
+       " {no_such_listener,\"bad:listener:identifier\"}\n"
       ),
     unmock_print().
 

+ 186 - 54
apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl

@@ -187,7 +187,8 @@ end_per_group(_Groupname, _Config) ->
 init_per_testcase(t_events, Config) ->
     ok = emqx_rule_engine:load_providers(),
     init_events_counters(),
-    ok = emqx_rule_registry:register_resource_types([make_simple_resource_type(simple_resource_type)]),
+    ok = emqx_rule_registry:register_resource_types(
+           [make_simple_resource_type(simple_resource_type)]),
     ok = emqx_rule_registry:add_action(
             #action{name = 'hook-metrics-action', app = ?APP,
                     module = ?MODULE, on_create = hook_metrics_action,
@@ -206,7 +207,10 @@ init_per_testcase(t_events, Config) ->
                     #{id => <<"rule:t_events">>,
                       rawsql => SQL,
                       actions => [#{id => <<"action:inspect">>, name => 'inspect', args => #{}},
-                                  #{id => <<"action:hook-metrics-action">>, name => 'hook-metrics-action', args => #{}}],
+                                  #{ id => <<"action:hook-metrics-action">>
+                                   , name => 'hook-metrics-action'
+                                   , args => #{}
+                                   }],
                       description => <<"Debug rule">>}),
     ?assertMatch(#rule{id = <<"rule:t_events">>}, Rule),
     [{hook_points_rules, Rule} | Config];
@@ -439,7 +443,8 @@ t_list_actions_api(_Config) ->
     ok.
 
 t_show_action_api(_Config) ->
-    {ok, #{code := 0, data := Actions}} = emqx_rule_engine_api:show_action(#{name => 'inspect'}, []),
+    {ok, #{code := 0, data := Actions}} =
+        emqx_rule_engine_api:show_action(#{name => 'inspect'}, []),
     ?assertEqual('inspect', maps:get(name, Actions)),
     ok.
 
@@ -503,7 +508,8 @@ t_list_resource_types_api(_Config) ->
     ok.
 
 t_show_resource_type_api(_Config) ->
-    {ok, #{code := 0, data := RShow}} = emqx_rule_engine_api:show_resource_type(#{name => 'built_in'}, []),
+    {ok, #{code := 0, data := RShow}} =
+        emqx_rule_engine_api:show_resource_type(#{name => 'built_in'}, []),
     %ct:pal("RShow : ~p", [RShow]),
     ?assertEqual(built_in, maps:get(name, RShow)),
     ok.
@@ -521,7 +527,15 @@ t_rules_cli(_Config) ->
     %ct:pal("Result : ~p", [RCreate]),
     ?assertMatch({match, _}, re:run(RCreate, "created")),
 
-    RuleId = re:replace(re:replace(RCreate, "Rule\s", "", [{return, list}]), "\screated\n", "", [{return, list}]),
+    RuleId = re:replace(
+               re:replace( RCreate
+                         , "Rule\s"
+                         , ""
+                         , [{return, list}]
+                         ),
+               "\screated\n",
+               "",
+               [{return, list}]),
 
     RList = emqx_rule_engine_cli:rules(["list"]),
     ?assertMatch({match, _}, re:run(RList, RuleId)),
@@ -562,8 +576,17 @@ t_actions_cli(_Config) ->
 
 t_resources_cli(_Config) ->
     mock_print(),
-    RCreate = emqx_rule_engine_cli:resources(["create", "built_in", "{\"a\" : 1}", "-d", "test resource"]),
-    ResId = re:replace(re:replace(RCreate, "Resource\s", "", [{return, list}]), "\screated\n", "", [{return, list}]),
+    RCreate = emqx_rule_engine_cli:resources(
+                ["create", "built_in", "{\"a\" : 1}", "-d", "test resource"]),
+    ResId = re:replace(
+              re:replace( RCreate
+                        , "Resource\s"
+                        , ""
+                        , [{return, list}]
+                        ),
+              "\screated\n",
+              "",
+              [{return, list}]),
 
     RList = emqx_rule_engine_cli:resources(["list"]),
     ?assertMatch({match, _}, re:run(RList, "test resource")),
@@ -765,48 +788,121 @@ t_get_rules_ordered_by_ts(_Config) ->
 t_get_rules_for_2(_Config) ->
     Len0 = length(emqx_rule_registry:get_rules_for(<<"simple/1">>)),
     ok = emqx_rule_registry:add_rules(
-            [make_simple_rule(<<"rule-debug-1">>, <<"select * from \"simple/#\"">>, [<<"simple/#">>]),
-             make_simple_rule(<<"rule-debug-2">>, <<"select * from \"simple/+\"">>, [<<"simple/+">>]),
-             make_simple_rule(<<"rule-debug-3">>, <<"select * from \"simple/+/1\"">>, [<<"simple/+/1">>]),
-             make_simple_rule(<<"rule-debug-4">>, <<"select * from \"simple/1\"">>, [<<"simple/1">>]),
-             make_simple_rule(<<"rule-debug-5">>, <<"select * from \"simple/2,simple/+,simple/3\"">>, [<<"simple/2">>,<<"simple/+">>, <<"simple/3">>]),
-             make_simple_rule(<<"rule-debug-6">>, <<"select * from \"simple/2,simple/3,simple/4\"">>, [<<"simple/2">>,<<"simple/3">>, <<"simple/4">>])
+            [make_simple_rule(
+               <<"rule-debug-1">>,
+               <<"select * from \"simple/#\"">>,
+               [<<"simple/#">>]),
+             make_simple_rule(
+               <<"rule-debug-2">>,
+               <<"select * from \"simple/+\"">>,
+               [<<"simple/+">>]),
+             make_simple_rule(
+               <<"rule-debug-3">>,
+               <<"select * from \"simple/+/1\"">>,
+               [<<"simple/+/1">>]),
+             make_simple_rule(
+               <<"rule-debug-4">>,
+               <<"select * from \"simple/1\"">>,
+               [<<"simple/1">>]),
+             make_simple_rule(
+               <<"rule-debug-5">>,
+               <<"select * from \"simple/2,simple/+,simple/3\"">>,
+               [<<"simple/2">>,<<"simple/+">>, <<"simple/3">>]),
+             make_simple_rule(
+               <<"rule-debug-6">>,
+               <<"select * from \"simple/2,simple/3,simple/4\"">>,
+               [<<"simple/2">>,<<"simple/3">>, <<"simple/4">>])
              ]),
     ?assertEqual(Len0+4, length(emqx_rule_registry:get_rules_for(<<"simple/1">>))),
-    ok = emqx_rule_registry:remove_rules([<<"rule-debug-1">>, <<"rule-debug-2">>,<<"rule-debug-3">>, <<"rule-debug-4">>,<<"rule-debug-5">>, <<"rule-debug-6">>]),
+    ok = emqx_rule_registry:remove_rules(
+           [ <<"rule-debug-1">>
+           , <<"rule-debug-2">>
+           , <<"rule-debug-3">>
+           , <<"rule-debug-4">>
+           , <<"rule-debug-5">>
+           , <<"rule-debug-6">>
+           ]),
     ok.
 
 t_get_rules_with_same_event(_Config) ->
     PubT = <<"simple/1">>,
     PubN = length(emqx_rule_registry:get_rules_with_same_event(PubT)),
     ?assertEqual([], emqx_rule_registry:get_rules_with_same_event(<<"$events/client_connected">>)),
-    ?assertEqual([], emqx_rule_registry:get_rules_with_same_event(<<"$events/client_disconnected">>)),
-    ?assertEqual([], emqx_rule_registry:get_rules_with_same_event(<<"$events/session_subscribed">>)),
-    ?assertEqual([], emqx_rule_registry:get_rules_with_same_event(<<"$events/session_unsubscribed">>)),
+    ?assertEqual(
+       [],
+       emqx_rule_registry:get_rules_with_same_event(<<"$events/client_disconnected">>)),
+    ?assertEqual(
+       [],
+       emqx_rule_registry:get_rules_with_same_event(<<"$events/session_subscribed">>)),
+    ?assertEqual(
+       [],
+       emqx_rule_registry:get_rules_with_same_event(<<"$events/session_unsubscribed">>)),
     ?assertEqual([], emqx_rule_registry:get_rules_with_same_event(<<"$events/message_delivered">>)),
     ?assertEqual([], emqx_rule_registry:get_rules_with_same_event(<<"$events/message_acked">>)),
     ?assertEqual([], emqx_rule_registry:get_rules_with_same_event(<<"$events/message_dropped">>)),
     ok = emqx_rule_registry:add_rules(
             [make_simple_rule(<<"r1">>, <<"select * from \"simple/#\"">>, [<<"simple/#">>]),
              make_simple_rule(<<"r2">>, <<"select * from \"abc/+\"">>, [<<"abc/+">>]),
-             make_simple_rule(<<"r3">>, <<"select * from \"$events/client_connected\"">>, [<<"$events/client_connected">>]),
-             make_simple_rule(<<"r4">>, <<"select * from \"$events/client_disconnected\"">>, [<<"$events/client_disconnected">>]),
-             make_simple_rule(<<"r5">>, <<"select * from \"$events/session_subscribed\"">>, [<<"$events/session_subscribed">>]),
-             make_simple_rule(<<"r6">>, <<"select * from \"$events/session_unsubscribed\"">>, [<<"$events/session_unsubscribed">>]),
-             make_simple_rule(<<"r7">>, <<"select * from \"$events/message_delivered\"">>, [<<"$events/message_delivered">>]),
-             make_simple_rule(<<"r8">>, <<"select * from \"$events/message_acked\"">>, [<<"$events/message_acked">>]),
-             make_simple_rule(<<"r9">>, <<"select * from \"$events/message_dropped\"">>, [<<"$events/message_dropped">>]),
-             make_simple_rule(<<"r10">>, <<"select * from \"t/1, $events/session_subscribed, $events/client_connected\"">>, [<<"t/1">>, <<"$events/session_subscribed">>, <<"$events/client_connected">>])
+             make_simple_rule(
+               <<"r3">>,
+               <<"select * from \"$events/client_connected\"">>,
+               [<<"$events/client_connected">>]),
+             make_simple_rule(
+               <<"r4">>,
+               <<"select * from \"$events/client_disconnected\"">>,
+               [<<"$events/client_disconnected">>]),
+             make_simple_rule(
+               <<"r5">>,
+               <<"select * from \"$events/session_subscribed\"">>,
+               [<<"$events/session_subscribed">>]),
+             make_simple_rule(
+               <<"r6">>,
+               <<"select * from \"$events/session_unsubscribed\"">>,
+               [<<"$events/session_unsubscribed">>]),
+             make_simple_rule(
+               <<"r7">>,
+               <<"select * from \"$events/message_delivered\"">>,
+               [<<"$events/message_delivered">>]),
+             make_simple_rule(
+               <<"r8">>,
+               <<"select * from \"$events/message_acked\"">>,
+               [<<"$events/message_acked">>]),
+             make_simple_rule(
+               <<"r9">>,
+               <<"select * from \"$events/message_dropped\"">>,
+               [<<"$events/message_dropped">>]),
+             make_simple_rule(
+               <<"r10">>,
+               <<"select * from \"t/1, $events/session_subscribed,"
+                 " $events/client_connected\"">>,
+               [<<"t/1">>, <<"$events/session_subscribed">>, <<"$events/client_connected">>])
              ]),
     ?assertEqual(PubN + 3, length(emqx_rule_registry:get_rules_with_same_event(PubT))),
-    ?assertEqual(2, length(emqx_rule_registry:get_rules_with_same_event(<<"$events/client_connected">>))),
-    ?assertEqual(1, length(emqx_rule_registry:get_rules_with_same_event(<<"$events/client_disconnected">>))),
-    ?assertEqual(2, length(emqx_rule_registry:get_rules_with_same_event(<<"$events/session_subscribed">>))),
-    ?assertEqual(1, length(emqx_rule_registry:get_rules_with_same_event(<<"$events/session_unsubscribed">>))),
-    ?assertEqual(1, length(emqx_rule_registry:get_rules_with_same_event(<<"$events/message_delivered">>))),
-    ?assertEqual(1, length(emqx_rule_registry:get_rules_with_same_event(<<"$events/message_acked">>))),
-    ?assertEqual(1, length(emqx_rule_registry:get_rules_with_same_event(<<"$events/message_dropped">>))),
-    ok = emqx_rule_registry:remove_rules([<<"r1">>, <<"r2">>,<<"r3">>, <<"r4">>,<<"r5">>, <<"r6">>, <<"r7">>, <<"r8">>, <<"r9">>, <<"r10">>]),
+    ?assertEqual(
+       2,
+       length(emqx_rule_registry:get_rules_with_same_event(<<"$events/client_connected">>))),
+    ?assertEqual(
+       1,
+       length(emqx_rule_registry:get_rules_with_same_event(<<"$events/client_disconnected">>))),
+    ?assertEqual(
+       2,
+       length(emqx_rule_registry:get_rules_with_same_event(<<"$events/session_subscribed">>))),
+    ?assertEqual(
+       1,
+       length(emqx_rule_registry:get_rules_with_same_event(<<"$events/session_unsubscribed">>))),
+    ?assertEqual(
+       1,
+       length(emqx_rule_registry:get_rules_with_same_event(<<"$events/message_delivered">>))),
+    ?assertEqual(
+       1,
+       length(emqx_rule_registry:get_rules_with_same_event(<<"$events/message_acked">>))),
+    ?assertEqual(
+       1,
+       length(emqx_rule_registry:get_rules_with_same_event(<<"$events/message_dropped">>))),
+    ok = emqx_rule_registry:remove_rules(
+           [<<"r1">>, <<"r2">>,<<"r3">>,
+            <<"r4">>,<<"r5">>, <<"r6">>,
+            <<"r7">>, <<"r8">>, <<"r9">>, <<"r10">>]),
     ok.
 
 t_add_get_remove_action(_Config) ->
@@ -882,7 +978,11 @@ register_resource_types() ->
     emqx_rule_registry:register_resource_types([ResType1,ResType2]),
     ok.
 get_resource_type() ->
-    ?assertMatch({ok, #resource_type{name = <<"resource-type-debug-1">>}}, emqx_rule_registry:find_resource_type(<<"resource-type-debug-1">>)),
+    ?assertMatch( { ok
+                  , #resource_type{name = <<"resource-type-debug-1">>}
+                  }
+                , emqx_rule_registry:find_resource_type(<<"resource-type-debug-1">>)
+                ),
     ok.
 get_resource_types() ->
     ResTypes = emqx_rule_registry:get_resource_types(),
@@ -947,11 +1047,18 @@ client_disconnected(Client, Client2) ->
     verify_event('client.disconnected'),
     ok.
 session_subscribed(Client2) ->
-    {ok, _, _} = emqtt:subscribe(Client2, #{'User-Property' => {<<"topic_name">>, <<"t1">>}}, <<"t1">>, 1),
+    {ok, _, _} = emqtt:subscribe( Client2
+                                , #{'User-Property' => {<<"topic_name">>, <<"t1">>}}
+                                , <<"t1">>
+                                , 1
+                                ),
     verify_event('session.subscribed'),
     ok.
 session_unsubscribed(Client2) ->
-    {ok, _, _} = emqtt:unsubscribe(Client2, #{'User-Property' => {<<"topic_name">>, <<"t1">>}}, <<"t1">>),
+    {ok, _, _} = emqtt:unsubscribe( Client2
+                                  , #{'User-Property' => {<<"topic_name">>, <<"t1">>}}
+                                  , <<"t1">>
+                                  ),
     verify_event('session.unsubscribed'),
     ok.
 
@@ -977,7 +1084,10 @@ t_mfa_action(_Config) ->
     {ok, #rule{id = Id}} = emqx_rule_engine:create_rule(
                     #{id => <<"rule:t_mfa_action">>,
                       rawsql => SQL,
-                      actions => [#{id => <<"action:mfa-test">>, name => 'mfa-action', args => #{}}],
+                      actions => [#{ id => <<"action:mfa-test">>
+                                   , name => 'mfa-action'
+                                   , args => #{}
+                                   }],
                       description => <<"Debug rule">>}),
     {ok, Client} = emqtt:start_link([{username, <<"emqx">>}]),
     {ok, _} = emqtt:connect(Client),
@@ -1676,12 +1786,18 @@ t_sqlparse_foreach_1(_Config) ->
     Sql3 = "foreach payload.sensors "
           "from \"t/#\" ",
     ?assertMatch({ok,[#{item := #{<<"cmd">> := <<"1">>}, clientid := <<"c_a">>},
-                       #{item := #{<<"cmd">> := <<"2">>, <<"name">> := <<"ct">>}, clientid := <<"c_a">>}]},
+                       #{item := #{ <<"cmd">> := <<"2">>
+                                  , <<"name">> := <<"ct">>
+                                  }
+                        , clientid := <<"c_a">>}]},
                  emqx_rule_sqltester:test(
                     #{<<"rawsql">> => Sql3,
-                      <<"ctx">> => #{
-                          <<"payload">> => <<"{\"sensors\": [{\"cmd\":\"1\"}, {\"cmd\":\"2\",\"name\":\"ct\"}]}">>, <<"clientid">> => <<"c_a">>,
-                          <<"topic">> => <<"t/a">>}})),
+                      <<"ctx">> =>
+                          #{ <<"payload">> => <<"{\"sensors\": [{\"cmd\":\"1\"}, "
+                                                "{\"cmd\":\"2\",\"name\":\"ct\"}]}">>
+                           , <<"clientid">> => <<"c_a">>
+                           , <<"topic">> => <<"t/a">>
+                           }})),
     Sql4 = "foreach payload.sensors "
           "from \"t/#\" ",
     {ok,[#{metadata := #{rule_id := TRuleId}},
@@ -1766,12 +1882,17 @@ t_sqlparse_foreach_4(_Config) ->
                         #{<<"payload">> =>
                             <<"{\"sensors\": [{\"cmd\":\"1\"}, {\"cmd\":\"2\"}]}">>,
                           <<"topic">> => <<"t/a">>}})),
-    ?assertMatch({ok,[#{<<"msg_type">> := <<"1">>, <<"name">> := <<"n1">>}, #{<<"msg_type">> := <<"2">>}]},
+    ?assertMatch({ ok
+                 , [ #{<<"msg_type">> := <<"1">>, <<"name">> := <<"n1">>}
+                   , #{<<"msg_type">> := <<"2">>}
+                   ]
+                 },
                  emqx_rule_sqltester:test(
                     #{<<"rawsql">> => Sql,
                       <<"ctx">> =>
                         #{<<"payload">> =>
-                            <<"{\"sensors\": [{\"cmd\":\"1\", \"name\":\"n1\"}, {\"cmd\":\"2\"}, {\"name\":\"n3\"}]}">>,
+                            <<"{\"sensors\": [{\"cmd\":\"1\", \"name\":\"n1\"}, "
+                              "{\"cmd\":\"2\"}, {\"name\":\"n3\"}]}">>,
                           <<"topic">> => <<"t/a">>}})),
     ?assertMatch({ok,[]},
                  emqx_rule_sqltester:test(
@@ -1828,8 +1949,13 @@ t_sqlparse_foreach_7(_Config) ->
           "incase is_not_null(info.cmd) "
           "from \"t/#\" "
           "where s.page = '2' ",
-    Payload  = <<"{\"sensors\": {\"page\": 2, \"collection\": {\"info\":[{\"name\":\"cmd1\", \"cmd\":\"1\"}, {\"cmd\":\"2\"}]} } }">>,
-    ?assertMatch({ok,[#{<<"name">> := <<"cmd1">>, <<"msg_type">> := <<"1">>}, #{<<"msg_type">> := <<"2">>}]},
+    Payload  = <<"{\"sensors\": {\"page\": 2, \"collection\": "
+                 "{\"info\":[{\"name\":\"cmd1\", \"cmd\":\"1\"}, {\"cmd\":\"2\"}]} } }">>,
+    ?assertMatch({ ok
+                 , [ #{<<"name">> := <<"cmd1">>, <<"msg_type">> := <<"1">>}
+                   , #{<<"msg_type">> := <<"2">>}
+                   ]
+                 },
                  emqx_rule_sqltester:test(
                     #{<<"rawsql">> => Sql,
                       <<"ctx">> =>
@@ -1854,7 +1980,8 @@ t_sqlparse_foreach_8(_Config) ->
           "incase is_map(info) "
           "from \"t/#\" "
           "where s.page = '2' ",
-    Payload  = <<"{\"sensors\": {\"page\": 2, \"collection\": {\"info\":[\"haha\", {\"name\":\"cmd1\", \"cmd\":\"1\"}]} } }">>,
+    Payload  = <<"{\"sensors\": {\"page\": 2, \"collection\": "
+                 "{\"info\":[\"haha\", {\"name\":\"cmd1\", \"cmd\":\"1\"}]} } }">>,
     ?assertMatch({ok,[#{<<"name">> := <<"cmd1">>, <<"msg_type">> := <<"1">>}]},
                  emqx_rule_sqltester:test(
                     #{<<"rawsql">> => Sql,
@@ -1862,10 +1989,11 @@ t_sqlparse_foreach_8(_Config) ->
                         #{<<"payload">> => Payload,
                           <<"topic">> => <<"t/a">>}})),
 
-    Sql3 = "foreach json_decode(payload) as p, p.sensors as s, s.collection as c, sublist(2,1,c.info) as info "
-          "do info.cmd as msg_type, info.name as name "
-          "from \"t/#\" "
-          "where s.page = '2' ",
+    Sql3 = "foreach json_decode(payload) as p, p.sensors as s,"
+           " s.collection as c, sublist(2,1,c.info) as info "
+           "do info.cmd as msg_type, info.name as name "
+           "from \"t/#\" "
+           "where s.page = '2' ",
     [?assertMatch({ok,[#{<<"name">> := <<"cmd1">>, <<"msg_type">> := <<"1">>}]},
                  emqx_rule_sqltester:test(
                     #{<<"rawsql">> => SqlN,
@@ -1992,10 +2120,12 @@ t_sqlparse_array_index_1(_Config) ->
     Sql3 = "select "
            "  payload.x[2].y "
            "from \"t/#\" ",
-    ?assertMatch({ok, #{<<"payload">> := #{<<"x">> := [#{<<"y">> := 3}]}}}, emqx_rule_sqltester:test(
+    ?assertMatch( {ok, #{<<"payload">> := #{<<"x">> := [#{<<"y">> := 3}]}}}
+                , emqx_rule_sqltester:test(
                     #{<<"rawsql">> => Sql3,
                       <<"ctx">> => #{<<"payload">> => #{<<"x">> => [1,#{y => 3},4]},
-                                     <<"topic">> => <<"t/a">>}})),
+                                     <<"topic">> => <<"t/a">>}})
+                ),
 
     %% index get with 'as'
     Sql4 = "select "
@@ -2228,10 +2358,12 @@ t_sqlparse_new_map(_Config) ->
 t_sqlparse_payload_as(_Config) ->
     %% https://github.com/emqx/emqx/issues/3866
     Sql00 = "SELECT "
-            " payload, map_get('engineWorkTime', payload.params, -1) as payload.params.engineWorkTime, "
+            " payload, map_get('engineWorkTime', payload.params, -1) "
+            "as payload.params.engineWorkTime, "
             " map_get('hydOilTem', payload.params, -1) as payload.params.hydOilTem "
             "FROM \"t/#\" ",
-    Payload1 = <<"{ \"msgId\": 1002, \"params\": { \"convertTemp\": 20, \"engineSpeed\": 42, \"hydOilTem\": 30 } }">>,
+    Payload1 = <<"{ \"msgId\": 1002, \"params\": "
+                 "{ \"convertTemp\": 20, \"engineSpeed\": 42, \"hydOilTem\": 30 } }">>,
     {ok, Res01} = emqx_rule_sqltester:test(
                     #{<<"rawsql">> => Sql00,
                       <<"ctx">> => #{<<"payload">> => Payload1,

+ 2 - 0
src/emqx_ctl.erl

@@ -57,6 +57,8 @@
         , code_change/3
         ]).
 
+-elvis([{elvis_style, invalid_dynamic_call, #{ignore => [emqx_ctl]}}]).
+
 -record(state, {seq = 0}).
 
 -type(cmd() :: atom()).