File 3506-snmp-test-Add-utility-function-and-macro-for-message.patch of Package erlang
From 31080c4e0d21f53d35bfd3ed4443e3ae424b041d Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Tue, 20 Oct 2020 12:09:08 +0200
Subject: [PATCH 6/7] [snmp|test] Add utility function (and macro) for message
queue
Add a utility function(s) (and macro) for 'peeking' at the
message queue of a process.
---
lib/snmp/test/snmp_test_lib.erl | 13 ++++++++++++-
lib/snmp/test/snmp_test_lib.hrl | 2 ++
lib/snmp/test/snmp_test_mgr.erl | 29 ++++++++++++-----------------
3 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/lib/snmp/test/snmp_test_lib.erl b/lib/snmp/test/snmp_test_lib.erl
index 3062bfe43e..d4e7c53e0a 100644
--- a/lib/snmp/test/snmp_test_lib.erl
+++ b/lib/snmp/test/snmp_test_lib.erl
@@ -39,7 +39,7 @@
replace_config/3, set_config/3, get_config/2, get_config/3]).
-export([fail/3, skip/3]).
-export([hours/1, minutes/1, seconds/1, sleep/1]).
--export([flush_mqueue/0, trap_exit/0, trap_exit/1]).
+-export([flush_mqueue/0, mqueue/0, mqueue/1, trap_exit/0, trap_exit/1]).
-export([ping/1, local_nodes/0, nodes_on/1]).
-export([start_node/2, stop_node/1]).
-export([is_app_running/1,
@@ -2241,6 +2241,17 @@ sleep(MSecs) ->
%% Process utility function
%%
+mqueue() ->
+ mqueue(self()).
+mqueue(Pid) when is_pid(Pid) ->
+ Key = messages,
+ case process_info(Pid, Key) of
+ {Key, Msgs} ->
+ Msgs;
+ _ ->
+ []
+ end.
+
flush_mqueue() ->
io:format("~p~n", [lists:reverse(flush_mqueue([]))]).
diff --git a/lib/snmp/test/snmp_test_lib.hrl b/lib/snmp/test/snmp_test_lib.hrl
index a853d3cc09..78d1453c12 100644
--- a/lib/snmp/test/snmp_test_lib.hrl
+++ b/lib/snmp/test/snmp_test_lib.hrl
@@ -85,6 +85,8 @@
%% - Process utility macros -
-define(FLUSH(), ?LIB:flush_mqueue()).
+-define(MQUEUE(), ?LIB:mqueue()).
+-define(MQUEUE(P), ?LIB:mqueue(P)).
-define(ETRAP_GET(), ?LIB:trap_exit()).
-define(ETRAP_SET(O), ?LIB:trap_exit(O)).
-define(PINFO(__P__), try process_info(__P__)
diff --git a/lib/snmp/test/snmp_test_mgr.erl b/lib/snmp/test/snmp_test_mgr.erl
index 306379808f..6b532c6261 100644
--- a/lib/snmp/test/snmp_test_mgr.erl
+++ b/lib/snmp/test/snmp_test_mgr.erl
@@ -746,17 +746,12 @@ get_response_impl(Id, ExpVars) ->
%% but what did we get?
?EPRINT("unexpected receive pdu error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end.
-msgs() ->
- {messages, Msgs} = process_info(self(), messages),
- Msgs.
-
-
%%----------------------------------------------------------------------
%% Returns: ok | {error, Id, {ExpectedFormat, ExpectedData}, {Format, Data}}
%%----------------------------------------------------------------------
@@ -771,7 +766,7 @@ expect_impl(Id, any) ->
%% but what did we get?
?EPRINT("unexpected receive error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end;
@@ -786,7 +781,7 @@ expect_impl(Id, return) ->
%% but what did we get?
?EPRINT("unexpected receive error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end;
@@ -801,7 +796,7 @@ expect_impl(Id, trap) ->
%% but what did we get?
?EPRINT("unexpected receive error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end;
@@ -842,7 +837,7 @@ expect_impl(Id, Err) when is_atom(Err) ->
%% but what did we get?
?EPRINT("unexpected receive error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end;
@@ -879,7 +874,7 @@ expect_impl(Id, ExpectedVarbinds) when is_list(ExpectedVarbinds) ->
%% but what did we get?
?EPRINT("unexpected receive error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end.
@@ -916,7 +911,7 @@ expect_impl(Id, v2trap, ExpectedVarbinds) when is_list(ExpectedVarbinds) ->
%% but what did we get?
?EPRINT("unexpected receive error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end;
@@ -953,7 +948,7 @@ expect_impl(Id, report, ExpectedVarbinds) when is_list(ExpectedVarbinds) ->
%% but what did we get?
?EPRINT("unexpected receive error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end;
@@ -1017,7 +1012,7 @@ expect_impl(Id, {inform, Reply}, ExpectedVarbinds)
%% but what did we get?
?EPRINT("unexpected receive error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end.
@@ -1079,7 +1074,7 @@ expect_impl(Id, Err, Index, any = _ExpectedVarbinds) ->
%% but what did we get?
?EPRINT("unexpected (receive) response: "
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end;
@@ -1161,7 +1156,7 @@ expect_impl(Id, Err, Index, ExpectedVarbinds) ->
%% but what did we get?
?EPRINT("unexpected receive pdu error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end.
@@ -1214,7 +1209,7 @@ expect_impl(Id, trap, Enterp, Generic, Specific, ExpectedVarbinds) ->
%% but what did we get?
?EPRINT("unexpected receive trap pdu error: ~w"
"~n Reason: ~p"
- "~n Msg Que: ~p", [Id, Reason, msgs()]),
+ "~n Msg Que: ~p", [Id, Reason, ?MQUEUE()]),
format_reason(Id, Reason)
end.
--
2.26.2