|
@@ -22,6 +22,20 @@
|
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
|
|
|
|
|
|
-define(LOGGER, emqx_logger).
|
|
-define(LOGGER, emqx_logger).
|
|
|
|
|
+-define(a, "a").
|
|
|
|
|
+
|
|
|
|
|
+-define(PARSE_TRANS_TEST_CODE,
|
|
|
|
|
+ "-module(mytest).\n"
|
|
|
|
|
+ "-logger_header(\"[MyTest]\").\n"
|
|
|
|
|
+ "-export([run/0]).\n"
|
|
|
|
|
+ "-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).
|
|
all() -> emqx_ct:all(?MODULE).
|
|
|
|
|
|
|
@@ -82,8 +96,39 @@ t_set_log_level(_) ->
|
|
|
?assertMatch({error, _Error}, ?LOGGER:set_log_level(for_test)),
|
|
?assertMatch({error, _Error}, ?LOGGER:set_log_level(for_test)),
|
|
|
?assertEqual(ok, ?LOGGER:set_log_level(debug)).
|
|
?assertEqual(ok, ?LOGGER:set_log_level(debug)).
|
|
|
|
|
|
|
|
-% t_parse_transform(_) ->
|
|
|
|
|
-% error('TODO').
|
|
|
|
|
|
|
+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),
|
|
|
|
|
+ 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]),
|
|
|
|
|
+ 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(_) ->
|
|
t_set_metadata_peername(_) ->
|
|
|
?assertEqual(ok, ?LOGGER:set_metadata_peername("for_test")).
|
|
?assertEqual(ok, ?LOGGER:set_metadata_peername("for_test")).
|
|
@@ -91,3 +136,13 @@ t_set_metadata_peername(_) ->
|
|
|
t_set_metadata_clientid(_) ->
|
|
t_set_metadata_clientid(_) ->
|
|
|
?assertEqual(ok, ?LOGGER:set_metadata_clientid(<<>>)),
|
|
?assertEqual(ok, ?LOGGER:set_metadata_clientid(<<>>)),
|
|
|
?assertEqual(ok, ?LOGGER:set_metadata_clientid("for_test")).
|
|
?assertEqual(ok, ?LOGGER:set_metadata_clientid("for_test")).
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+split_toks_at_dot(AllToks) ->
|
|
|
|
|
+ case lists:splitwith(fun is_no_dot/1, AllToks) of
|
|
|
|
|
+ {Toks, [{dot,_}=Dot]} -> [Toks ++ [Dot]];
|
|
|
|
|
+ {Toks, [{dot,_}=Dot | Tl]} -> [Toks ++ [Dot] | split_toks_at_dot(Tl)]
|
|
|
|
|
+ end.
|
|
|
|
|
+
|
|
|
|
|
+is_no_dot({dot,_}) -> false;
|
|
|
|
|
+is_no_dot(_) -> true.
|