aboutsummaryrefslogtreecommitdiffstats
path: root/lib/common_test/test/ct_snmp_SUITE.erl
diff options
context:
space:
mode:
authorSiri Hansen <[email protected]>2012-09-20 17:00:03 +0200
committerSiri Hansen <[email protected]>2012-09-20 17:00:03 +0200
commit5c2be4d01720a8833fe8e8b71e25ffe946026771 (patch)
treea53e322402beceb1b419b2e387963a8b756df9e8 /lib/common_test/test/ct_snmp_SUITE.erl
parent1723cf86e1aaa9c0afadbaf7b8b3075d9eb8c674 (diff)
downloadotp-5c2be4d01720a8833fe8e8b71e25ffe946026771.tar.gz
otp-5c2be4d01720a8833fe8e8b71e25ffe946026771.tar.bz2
otp-5c2be4d01720a8833fe8e8b71e25ffe946026771.zip
[common_test] Add minor test suite for ct_snmp
Diffstat (limited to 'lib/common_test/test/ct_snmp_SUITE.erl')
-rw-r--r--lib/common_test/test/ct_snmp_SUITE.erl152
1 files changed, 152 insertions, 0 deletions
diff --git a/lib/common_test/test/ct_snmp_SUITE.erl b/lib/common_test/test/ct_snmp_SUITE.erl
new file mode 100644
index 0000000000..9e4bbedcfb
--- /dev/null
+++ b/lib/common_test/test/ct_snmp_SUITE.erl
@@ -0,0 +1,152 @@
+%%--------------------------------------------------------------------
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2012. 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
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%----------------------------------------------------------------------
+%% File: ct_snmp_SUITE.erl
+%%
+%% Description:
+%% This file contains the test cases for the ct_snmp API.
+%%
+%% @author Support
+%% @doc Test of SNMP support in common_test
+%% @end
+%%----------------------------------------------------------------------
+%%----------------------------------------------------------------------
+-module(ct_snmp_SUITE).
+-include_lib("common_test/include/ct.hrl").
+-include_lib("snmp/include/STANDARD-MIB.hrl").
+-include_lib("snmp/include/snmp_types.hrl").
+
+-compile(export_all).
+
+%% Default timetrap timeout (set in init_per_testcase).
+-define(default_timeout, ?t:minutes(1)).
+
+%% SNMP user stuff
+-behaviour(snmpm_user).
+-export([handle_error/3,
+ handle_agent/5,
+ handle_pdu/4,
+ handle_trap/3,
+ handle_inform/3,
+ handle_report/3]).
+
+
+suite() ->
+ [{require, snmp_mgr_agent, snmp},
+ {require, snmp_app_cfg, snmp_app}].
+
+all() ->
+ [start_stop,
+ {group,get_set}].
+
+
+groups() ->
+ [{get_set,[get_values,get_next_values,set_values]}].
+
+init_per_group(get_set, Config) ->
+ ok = ct_snmp:start(Config,snmp_mgr_agent,snmp_app_cfg),
+ Config.
+
+end_per_group(get_set, Config) ->
+ ok = ct_snmp:stop(Config),
+ Config.
+
+init_per_testcase(_Case, Config) ->
+ Dog = test_server:timetrap(?default_timeout),
+ [{watchdog, Dog}|Config].
+
+end_per_testcase(_Case, Config) ->
+ Dog=?config(watchdog, Config),
+ test_server:timetrap_cancel(Dog),
+ ok.
+
+init_per_suite(Config) ->
+ Config.
+
+end_per_suite(Config) ->
+ Config.
+
+break(_Config) ->
+ test_server:break(""),
+ ok.
+
+start_stop(Config) ->
+ ok = ct_snmp:start(Config,snmp_mgr_agent,snmp_app_cfg),
+ timer:sleep(1000),
+ {snmp,_,_} = lists:keyfind(snmp,1,application:which_applications()),
+ [_|_] = filelib:wildcard("*/*.conf",?config(priv_dir,Config)),
+
+ ok = ct_snmp:stop(Config),
+ timer:sleep(1000),
+ false = lists:keyfind(snmp,1,application:which_applications()),
+ [] = filelib:wildcard("*/*.conf",?config(priv_dir,Config)),
+ ok.
+
+get_values(_Config) ->
+ Oids1 = [?sysDescr_instance, ?sysName_instance],
+ {noError,_,V1} = ct_snmp:get_values(agent_name,Oids1,snmp_mgr_agent),
+ [#varbind{oid=?sysDescr_instance,value="Erlang SNMP agent"},
+ #varbind{oid=?sysName_instance,value="ct_test"}] = V1,
+ ok.
+
+get_next_values(_Config) ->
+ Oids2 = [?system],
+ {noError,_,V2} = ct_snmp:get_next_values(agent_name,Oids2,snmp_mgr_agent),
+ [#varbind{oid=?sysDescr_instance,value="Erlang SNMP agent"}] = V2,
+ ok.
+
+set_values(Config) ->
+ Oid3 = ?sysName_instance,
+ NewName = "ct_test changed by " ++ atom_to_list(?MODULE),
+ VarsAndVals = [{Oid3,s,NewName}],
+ {noError,_,_} =
+ ct_snmp:set_values(agent_name,VarsAndVals,snmp_mgr_agent,Config),
+
+ Oids4 = [?sysName_instance],
+ {noError,_,V4} = ct_snmp:get_values(agent_name,Oids4,snmp_mgr_agent),
+ [#varbind{oid=?sysName_instance,value=NewName}] = V4,
+
+ ok.
+
+
+%%%-----------------------------------------------------------------
+%%% SNMP Manager User callback
+handle_error(ReqId, Reason, UserData) ->
+ erlang:display({handle_error,ReqId, Reason, UserData}),
+ ignore.
+
+handle_agent(Addr, Port, Type, SnmpInfo, UserData) ->
+ erlang:display({handle_agent,Addr, Port, Type, SnmpInfo, UserData}),
+ ignore.
+
+handle_pdu(TargetName, ReqId, SnmpPduInfo, UserData) ->
+ erlang:display({handle_pdu,TargetName, ReqId, SnmpPduInfo, UserData}),
+ ignore.
+
+handle_trap(TargetName, SnmpTrapInfo, UserData) ->
+ erlang:display({handle_trap,TargetName, SnmpTrapInfo, UserData}),
+ ignore.
+
+handle_inform(TargetName, SnmpInformInfo, UserData) ->
+ erlang:display({handle_inform,TargetName, SnmpInformInfo, UserData}),
+ ignore.
+
+handle_report(TargetName, SnmpReportInfo, UserData) ->
+ erlang:display({handle_report,TargetName, SnmpReportInfo, UserData}),
+ ignore.