From c1104d6708917d7ec0b3b77340242b679ee10122 Mon Sep 17 00:00:00 2001
From: Raimo Niskanen <raimo@erlang.org>
Date: Fri, 16 May 2014 15:11:05 +0200
Subject: wip: Testcase feedback

---
 lib/snmp/src/agent/snmp_framework_mib.erl |  2 ++
 lib/snmp/src/agent/snmp_generic.erl       | 30 ++++++++++++++++++++++++++----
 lib/snmp/src/agent/snmpa_local_db.erl     |  6 +++++-
 lib/snmp/src/misc/snmp_conf.erl           |  2 ++
 4 files changed, 35 insertions(+), 5 deletions(-)

(limited to 'lib')

diff --git a/lib/snmp/src/agent/snmp_framework_mib.erl b/lib/snmp/src/agent/snmp_framework_mib.erl
index fb52f90852..6589ace949 100644
--- a/lib/snmp/src/agent/snmp_framework_mib.erl
+++ b/lib/snmp/src/agent/snmp_framework_mib.erl
@@ -227,6 +227,8 @@ order_agent({Name, _}, {Name, _}) ->
     true; %% Less than or equal
 order_agent({_, _}, {intAgentTransportDomain, _}) ->
     false; %% Greater than
+order_agent({intAgentTransportDomain, _}, {_, _}) ->
+    true; %% Less than or equal
 order_agent({A, _}, {B, _}) ->
     A =< B.
 
diff --git a/lib/snmp/src/agent/snmp_generic.erl b/lib/snmp/src/agent/snmp_generic.erl
index 06afa68d96..3195ca2500 100644
--- a/lib/snmp/src/agent/snmp_generic.erl
+++ b/lib/snmp/src/agent/snmp_generic.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %% 
-%% Copyright Ericsson AB 1996-2010. All Rights Reserved.
+%% Copyright Ericsson AB 1996-2014. All Rights Reserved.
 %% 
 %% The contents of this file are subject to the Erlang Public License,
 %% Version 1.1, (the "License"); you may not use this file except in
@@ -414,7 +414,12 @@ table_check_status(NameDb, Col, ?'RowStatus_createAndGo', RowIndex, Cols) ->
 	    % side effect free and we only use the result temporary.
 	    case catch snmpa_local_db:table_construct_row(
 			 NameDb, RowIndex, ?'RowStatus_createAndGo', Cols) of
-		{'EXIT', _} ->
+		{'EXIT', _Reason} ->
+		    ?vtrace(
+		       "failed construct row (createAndGo): "
+		       " n   Reason: ~p"
+		       " n   Stack:  ~p",
+		       [_Reason, erlang:get_stacktrace()]),
 		    {noCreation, Col}; % Bad RowIndex
 		Row ->
 		    case lists:member(noinit, tuple_to_list(Row)) of
@@ -431,7 +436,12 @@ table_check_status(NameDb, Col, ?'RowStatus_createAndWait', RowIndex, Cols) ->
 	false ->
 	    case catch snmpa_local_db:table_construct_row(
 			 NameDb, RowIndex, ?'RowStatus_createAndGo', Cols) of
-		{'EXIT', _} ->
+		{'EXIT', _Reason} ->
+		    ?vtrace(
+		       "failed construct row (createAndWait): "
+		       " n   Reason: ~p"
+		       " n   Stack:  ~p",
+		       [_Reason, erlang:get_stacktrace()]),
 		    {noCreation, Col}; % Bad RowIndex
 		_Row ->
 		    {noError, 0}
@@ -711,7 +721,19 @@ find_col(Col, [_H | T]) -> find_col(Col, T).
 
 
 try_apply(nofunc, _) -> {noError, 0};
-try_apply(F, Args) -> apply(F, Args).
+try_apply(F, Args) -> maybe_verbose_apply(F, Args).
+
+maybe_verbose_apply(M, Args) ->
+    case get(verbosity) of
+        false ->
+            apply(M, Args);
+        _ ->
+            ?vlog("~n   apply: ~w,~p~n", [M,Args]),
+            Res = apply(M,Args),
+            ?vlog("~n   returned: ~p", [Res]),
+            Res
+    end.
+
 
 table_info({Name, _Db}) ->
     case snmpa_symbolic_store:table_info(Name) of
diff --git a/lib/snmp/src/agent/snmpa_local_db.erl b/lib/snmp/src/agent/snmpa_local_db.erl
index f991244287..292c370d51 100644
--- a/lib/snmp/src/agent/snmpa_local_db.erl
+++ b/lib/snmp/src/agent/snmpa_local_db.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %% 
-%% Copyright Ericsson AB 1996-2013. All Rights Reserved.
+%% Copyright Ericsson AB 1996-2014. All Rights Reserved.
 %% 
 %% The contents of this file are subject to the Erlang Public License,
 %% Version 1.1, (the "License"); you may not use this file except in
@@ -1011,6 +1011,10 @@ table_construct_row(Name, RowIndex, Status, Cols) ->
 		defvals = Defs, status_col = StatusCol,
 		first_own_index = FirstOwnIndex, not_accessible = NoAccs} =
 	snmp_generic:table_info(Name),
+    ?vtrace(
+       "table_construct_row Indexes: ~p~n"
+       "    RowIndex: ~p",
+       [Indexes, RowIndex]),
     Keys = snmp_generic:split_index_to_keys(Indexes, RowIndex),
     OwnKeys = snmp_generic:get_own_indexes(FirstOwnIndex, Keys),
     Row = OwnKeys ++ snmp_generic:table_create_rest(length(OwnKeys) + 1,
diff --git a/lib/snmp/src/misc/snmp_conf.erl b/lib/snmp/src/misc/snmp_conf.erl
index bf1a025457..594cfce705 100644
--- a/lib/snmp/src/misc/snmp_conf.erl
+++ b/lib/snmp/src/misc/snmp_conf.erl
@@ -191,6 +191,8 @@ read_fd(File, Order, Check, Fd, StartLine, Res) ->
 			  Order(RowA, RowB)
 		  end,
 		  lists:reverse(Res)),
+	    ?vtrace("read_fd to read_check ->~n"
+		    "   Lines: ~p", [Lines]),
 	    read_check(File, Check, Lines, undefined, [])
     end.
 
-- 
cgit v1.2.3