File 0005-Embrace-the-future.patch of Package lager

From dae8efc91612fe77178d0fbbeeabe9b24818691c Mon Sep 17 00:00:00 2001
From: "Paulo F. Oliveira" <paulo.ferraz.oliveira@gmail.com>
Date: Mon, 8 Feb 2021 01:11:12 +0000
Subject: [PATCH 4/4] Embrace the future

---
 rebar.config                |  2 +-
 test/lager_test_backend.erl | 80 +++++++++++++++++++++----------------
 2 files changed, 46 insertions(+), 36 deletions(-)

diff --git a/rebar.config b/rebar.config
index 4578da6..7583614 100644
--- a/rebar.config
+++ b/rebar.config
@@ -21,7 +21,7 @@
 
 {erl_opts, [
     {lager_extra_sinks, ['__lager_test_sink']},
-    {platform_define, "^(19|20|21|22)", test_statem},
+    {platform_define, "^(19|20|21|22|23|24)", test_statem},
     {platform_define, "^18", 'FUNCTION_NAME', unavailable},
     {platform_define, "^18", 'FUNCTION_ARITY', 0},
     debug_info,
diff --git a/test/lager_test_backend.erl b/test/lager_test_backend.erl
index 94dd22e..78bee6c 100644
--- a/test/lager_test_backend.erl
+++ b/test/lager_test_backend.erl
@@ -305,18 +305,18 @@ lager_test_() ->
                         lager:info(Attr, "hello ~p", Args),
                         lager:info([{d, delta}, {g, gamma}], Fmt, Args),
                         ?assertEqual(6, count()),
-                        {_Level, _Time, Message, Metadata}  = pop(),
+                        {Level, _Time, Message, Metadata}  = pop(),
                         ?assertMatch([{a, alpha}, {b, beta}|_], Metadata),
                         ?assertEqual("hello", lists:flatten(Message)),
-                        {_Level, _Time2, Message2, _Metadata2}  = pop(),
+                        {Level, _Time2, Message2, _Metadata2}  = pop(),
                         ?assertEqual("hello world", lists:flatten(Message2)),
-                        {_Level, _Time3, Message3, _Metadata3}  = pop(),
+                        {Level, _Time3, Message3, _Metadata3}  = pop(),
                         ?assertEqual("format world", lists:flatten(Message3)),
-                        {_Level, _Time4, Message4, _Metadata4}  = pop(),
+                        {Level, _Time4, Message4, _Metadata4}  = pop(),
                         ?assertEqual("hello world", lists:flatten(Message4)),
-                        {_Level, _Time5, Message5, _Metadata5}  = pop(),
+                        {Level, _Time5, Message5, _Metadata5}  = pop(),
                         ?assertEqual("hello world", lists:flatten(Message5)),
-                        {_Level, _Time6, Message6, Metadata6}  = pop(),
+                        {Level, _Time6, Message6, Metadata6}  = pop(),
                         ?assertMatch([{d, delta}, {g, gamma}|_], Metadata6),
                         ?assertEqual("format world", lists:flatten(Message6)),
                         ok
@@ -335,18 +335,18 @@ lager_test_() ->
                         lager:info([{K, atom_to_list(V)} || {K, V} <- Attr], "hello ~p", [{atom, X} || X <- Args]),
                         lager:info([{d, delta}, {g, gamma}], Fmt, [{atom, X} || X <- Args]),
                         ?assertEqual(6, count()),
-                        {_Level, _Time, Message, Metadata}  = pop(),
+                        {Level, _Time, Message, Metadata}  = pop(),
                         ?assertMatch([{a, "alpha"}, {b, "beta"}|_], Metadata),
                         ?assertEqual("hello", lists:flatten(Message)),
-                        {_Level, _Time2, Message2, _Metadata2}  = pop(),
+                        {Level, _Time2, Message2, _Metadata2}  = pop(),
                         ?assertEqual("hello {atom,world}", lists:flatten(Message2)),
-                        {_Level, _Time3, Message3, _Metadata3}  = pop(),
+                        {Level, _Time3, Message3, _Metadata3}  = pop(),
                         ?assertEqual("format world", lists:flatten(Message3)),
-                        {_Level, _Time4, Message4, _Metadata4}  = pop(),
+                        {Level, _Time4, Message4, _Metadata4}  = pop(),
                         ?assertEqual("hello {atom,world}", lists:flatten(Message4)),
-                        {_Level, _Time5, Message5, _Metadata5}  = pop(),
+                        {Level, _Time5, Message5, _Metadata5}  = pop(),
                         ?assertEqual("hello {atom,world}", lists:flatten(Message5)),
-                        {_Level, _Time6, Message6, Metadata6}  = pop(),
+                        {Level, _Time6, Message6, Metadata6}  = pop(),
                         ?assertMatch([{d, delta}, {g, gamma}|_], Metadata6),
                         ?assertEqual("format {atom,world}", lists:flatten(Message6)),
                         ok
@@ -365,18 +365,18 @@ lager_test_() ->
                         lager:info(fun() -> get(attrs) end(), "hello ~p", get(args)),
                         lager:info([{d, delta}, {g, gamma}], get(format), get(args)),
                         ?assertEqual(6, count()),
-                        {_Level, _Time, Message, Metadata}  = pop(),
+                        {Level, _Time, Message, Metadata}  = pop(),
                         ?assertMatch([{a, alpha}, {b, beta}|_], Metadata),
                         ?assertEqual("hello", lists:flatten(Message)),
-                        {_Level, _Time2, Message2, _Metadata2}  = pop(),
+                        {Level, _Time2, Message2, _Metadata2}  = pop(),
                         ?assertEqual("hello world", lists:flatten(Message2)),
-                        {_Level, _Time3, Message3, _Metadata3}  = pop(),
+                        {Level, _Time3, Message3, _Metadata3}  = pop(),
                         ?assertEqual("format world", lists:flatten(Message3)),
-                        {_Level, _Time4, Message4, _Metadata4}  = pop(),
+                        {Level, _Time4, Message4, _Metadata4}  = pop(),
                         ?assertEqual("hello world", lists:flatten(Message4)),
-                        {_Level, _Time5, Message5, _Metadata5}  = pop(),
+                        {Level, _Time5, Message5, _Metadata5}  = pop(),
                         ?assertEqual("hello world", lists:flatten(Message5)),
-                        {_Level, _Time6, Message6, Metadata6}  = pop(),
+                        {Level, _Time6, Message6, Metadata6}  = pop(),
                         ?assertMatch([{d, delta}, {g, gamma}|_], Metadata6),
                         ?assertEqual("format world", lists:flatten(Message6)),
                         ok
@@ -393,18 +393,18 @@ lager_test_() ->
                         lager:info(Test#test.attrs, "hello ~p", Test#test.args),
                         lager:info([{d, delta}, {g, gamma}], Test#test.format, Test#test.args),
                         ?assertEqual(6, count()),
-                        {_Level, _Time, Message, Metadata}  = pop(),
+                        {Level, _Time, Message, Metadata}  = pop(),
                         ?assertMatch([{a, alpha}, {b, beta}|_], Metadata),
                         ?assertEqual("hello", lists:flatten(Message)),
-                        {_Level, _Time2, Message2, _Metadata2}  = pop(),
+                        {Level, _Time2, Message2, _Metadata2}  = pop(),
                         ?assertEqual("hello world", lists:flatten(Message2)),
-                        {_Level, _Time3, Message3, _Metadata3}  = pop(),
+                        {Level, _Time3, Message3, _Metadata3}  = pop(),
                         ?assertEqual("format world", lists:flatten(Message3)),
-                        {_Level, _Time4, Message4, _Metadata4}  = pop(),
+                        {Level, _Time4, Message4, _Metadata4}  = pop(),
                         ?assertEqual("hello world", lists:flatten(Message4)),
-                        {_Level, _Time5, Message5, _Metadata5}  = pop(),
+                        {Level, _Time5, Message5, _Metadata5}  = pop(),
                         ?assertEqual("hello world", lists:flatten(Message5)),
-                        {_Level, _Time6, Message6, Metadata6}  = pop(),
+                        {Level, _Time6, Message6, Metadata6}  = pop(),
                         ?assertMatch([{d, delta}, {g, gamma}|_], Metadata6),
                         ?assertEqual("format world", lists:flatten(Message6)),
                         ok
@@ -794,18 +794,18 @@ extra_sinks_test_() ->
                         ?TEST_SINK_NAME:info(Attr, "hello ~p", Args),
                         ?TEST_SINK_NAME:info([{d, delta}, {g, gamma}], Fmt, Args),
                         ?assertEqual(6, count(?TEST_SINK_EVENT)),
-                        {_Level, _Time, Message, Metadata}  = pop(?TEST_SINK_EVENT),
+                        {Level, _Time, Message, Metadata}  = pop(?TEST_SINK_EVENT),
                         ?assertMatch([{a, alpha}, {b, beta}|_], Metadata),
                         ?assertEqual("hello", lists:flatten(Message)),
-                        {_Level, _Time2, Message2, _Metadata2}  = pop(?TEST_SINK_EVENT),
+                        {Level, _Time2, Message2, _Metadata2}  = pop(?TEST_SINK_EVENT),
                         ?assertEqual("hello world", lists:flatten(Message2)),
-                        {_Level, _Time3, Message3, _Metadata3}  = pop(?TEST_SINK_EVENT),
+                        {Level, _Time3, Message3, _Metadata3}  = pop(?TEST_SINK_EVENT),
                         ?assertEqual("format world", lists:flatten(Message3)),
-                        {_Level, _Time4, Message4, _Metadata4}  = pop(?TEST_SINK_EVENT),
+                        {Level, _Time4, Message4, _Metadata4}  = pop(?TEST_SINK_EVENT),
                         ?assertEqual("hello world", lists:flatten(Message4)),
-                        {_Level, _Time5, Message5, _Metadata5}  = pop(?TEST_SINK_EVENT),
+                        {Level, _Time5, Message5, _Metadata5}  = pop(?TEST_SINK_EVENT),
                         ?assertEqual("hello world", lists:flatten(Message5)),
-                        {_Level, _Time6, Message6, Metadata6}  = pop(?TEST_SINK_EVENT),
+                        {Level, _Time6, Message6, Metadata6}  = pop(?TEST_SINK_EVENT),
                         ?assertMatch([{d, delta}, {g, gamma}|_], Metadata6),
                         ?assertEqual("format world", lists:flatten(Message6)),
                         ok
@@ -912,6 +912,9 @@ crash(Type) ->
     _ = gen_event:which_handlers(error_logger),
     ok.
 
+test_body({slice, Expected}, Actual) ->
+    SlicedActual = string:slice(Actual, 0, length(Expected)),
+    ?assertEqual(Expected, SlicedActual, {Actual, sliced_to, SlicedActual, is_not_a_member_of, Expected});
 test_body(Expected, Actual) ->
     ExLen = length(Expected),
     {Body, Rest} = case length(Actual) > ExLen of
@@ -1056,11 +1059,10 @@ crash_fsm_test_() ->
             }
         end,
 
-        TestBody("gen_fsm crash", crash_fsm, crash, [], "gen_fsm crash_fsm in state state1 terminated with reason: call to undefined function crash_fsm:state1/3 from gen_fsm:handle_msg/"),
-        TestBody("gen_statem crash", crash_statem, crash, [], "gen_statem crash_statem in state state1 terminated with reason: no function clause matching crash_statem:handle"),
-        TestBody("gen_statem stop", crash_statem, stop, [explode], "gen_statem crash_statem in state state1 terminated with reason: explode"),
-        TestBody("gen_statem timeout", crash_statem, timeout, [], "gen_statem crash_statem in state state1 terminated with reason: timeout")
-    ],
+        TestBody("gen_statem crash", crash_statem, crash, [], {slice, "gen_statem crash_statem in state state1 terminated with reason"}),
+        TestBody("gen_statem stop", crash_statem, stop, [explode], {slice, "gen_statem crash_statem in state state1 terminated with reason"}),
+        TestBody("gen_statem timeout", crash_statem, timeout, [], {slice, "gen_statem crash_statem in state state1 terminated with reason"})
+    ] ++ test_body_gen_fsm_crash(TestBody),
 
     {"FSM crash output tests", [
         {"Default sink",
@@ -1075,6 +1077,14 @@ crash_fsm_test_() ->
             Tests}}
     ]}.
 
+-if(?OTP_RELEASE < 23).
+test_body_gen_fsm_crash(TestBody) ->
+    [TestBody("gen_fsm crash", crash_fsm, crash, [], "gen_fsm crash_fsm in state state1 terminated with reason: call to undefined function crash_fsm:state1/3 from gen_fsm:handle_msg/")].
+-else.
+test_body_gen_fsm_crash(_TestBody) ->
+    [].
+-endif.
+
 error_logger_redirect_crash_test_() ->
     TestBody=fun(Name,CrashReason,Expected) ->
         fun(Sink) ->
-- 
2.26.2

openSUSE Build Service is sponsored by