Explorar o código

Merge pull request #3016 from emqx/improve_emqx_tests

Improve testcases for emqx_logger
Shawn %!s(int64=6) %!d(string=hai) anos
pai
achega
13cd6bd7be
Modificáronse 2 ficheiros con 29 adicións e 3 borrados
  1. 1 0
      src/emqx_logger.erl
  2. 28 3
      test/emqx_logger_SUITE.erl

+ 1 - 0
src/emqx_logger.erl

@@ -43,6 +43,7 @@
         , set_primary_log_level/1
         , set_log_handler_level/2
         , set_log_level/1
+        , set_all_log_handlers_level/1
         ]).
 
 -export([ get_primary_log_level/0

+ 28 - 3
test/emqx_logger_SUITE.erl

@@ -31,6 +31,12 @@
         "-compile({parse_transform, logger_header}).\n"
         "run() -> '$logger_header'().").
 
+-define(PARSE_TRANS_TEST_CODE2,
+        "-module(mytest).\n"
+        "-export([run/0]).\n"
+        "-compile({parse_transform, logger_header}).\n"
+        "run() -> '$logger_header'().").
+
 all() -> emqx_ct:all(?MODULE).
 
 init_per_testcase(_TestCase, Config) ->
@@ -90,6 +96,9 @@ t_set_log_level(_) ->
     ?assertMatch({error, _Error}, ?LOGGER:set_log_level(for_test)),
     ?assertEqual(ok, ?LOGGER:set_log_level(debug)).
 
+t_set_all_log_handlers_level(_) ->
+    ?assertMatch({error, _Error}, ?LOGGER:set_all_log_handlers_level(for_test)).
+
 t_parse_transform(_) ->
     {ok, Toks, _EndLine} = erl_scan:string(?PARSE_TRANS_TEST_CODE),
     FormToks = split_toks_at_dot(Toks),
@@ -101,9 +110,25 @@ t_parse_transform(_) ->
              end
              || Ts <- FormToks],
     ct:log("=====: ~p", [Forms]),
-    AST = emqx_logger:parse_transform(Forms, []),
-    ct:log("=====: ~p", [AST]),
-    ?assertNotEqual(false, lists:keyfind('$logger_header', 3, AST)).
+    AST1 = emqx_logger:parse_transform(Forms, []),
+    ct:log("=====: ~p", [AST1]),
+    ?assertNotEqual(false, lists:keyfind('$logger_header', 3, AST1)).
+
+t_parse_transform_empty_header(_) ->
+    {ok, Toks, _EndLine} = erl_scan:string(?PARSE_TRANS_TEST_CODE2),
+    FormToks = split_toks_at_dot(Toks),
+    Forms = [case erl_parse:parse_form(Ts) of
+                 {ok, Form} ->
+                     Form;
+                 {error, Reason} ->
+                     erlang:error({parse_form_error, Ts, Reason})
+             end
+             || Ts <- FormToks],
+    ct:log("=====: ~p", [Forms]),
+    AST2 = emqx_logger:parse_transform(Forms++[{eof, 15}], []),
+    ct:log("=====: ~p", [AST2]),
+    ?assertNotEqual(false, lists:keyfind('$logger_header', 3, AST2)).
+
 
 t_set_metadata_peername(_) ->
     ?assertEqual(ok, ?LOGGER:set_metadata_peername("for_test")).