diff options
Diffstat (limited to 'lib/otp_mibs/test/otp_mibs_SUITE.erl')
-rw-r--r-- | lib/otp_mibs/test/otp_mibs_SUITE.erl | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/lib/otp_mibs/test/otp_mibs_SUITE.erl b/lib/otp_mibs/test/otp_mibs_SUITE.erl deleted file mode 100644 index cb3cd28200..0000000000 --- a/lib/otp_mibs/test/otp_mibs_SUITE.erl +++ /dev/null @@ -1,255 +0,0 @@ -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2004-2016. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%% -%% %CopyrightEnd% -%% --module(otp_mibs_SUITE). - -%%----------------------------------------------------------------- -%% This suite can no longer be executed standalone, i.e. it must be -%% executed with common test. The reason is that ct_snmp is used -%% instead of the snmp application directly. The suite requires a -%% config file, otp_mibs_SUITE.cfg, found in the same directory as -%% the suite. -%% -%% Execute with: -%% > ct_run -suite otp_mibs_SUITE -config otp_mibs_SUITE.cfg -%%----------------------------------------------------------------- - --include_lib("common_test/include/ct.hrl"). --include_lib("otp_mibs/include/OTP-MIB.hrl"). --include_lib("snmp/include/snmp_types.hrl"). - -% Test server specific exports --export([all/0, - suite/0, - groups/0, - init_per_group/2, - end_per_group/2, - init_per_suite/1, - end_per_suite/1, - init_per_testcase/2, - end_per_testcase/2]). - -% Test cases must be exported. --export([app/1, appup/1, nt_basic_types/1, nt_high_reduction_count/1]). - --define(TRAP_UDP, 5000). --define(AGENT_UDP, 4000). --define(CONF_FILE_VER, [v2]). --define(SYS_NAME, "Test otp_mibs"). --define(MAX_MSG_SIZE, 484). --define(ENGINE_ID, "mgrEngine"). --define(MGR_PORT, 5001). - -%% Since some cases are only interested in single entries of the OTP-MIB's -%% node table, one row must be chosen. The first row should be sufficient -%% for this. --define(NODE_ENTRY, 1). - -%%--------------------------------------------------------------------- -%% CT setup -%%--------------------------------------------------------------------- - -init_per_testcase(_Case, Config) when is_list(Config) -> - Dog = test_server:timetrap(test_server:minutes(6)), - [{watchdog, Dog}|Config]. - -end_per_testcase(_Case, Config) when is_list(Config) -> - Dog = ?config(watchdog, Config), - test_server:timetrap_cancel(Dog), - Config. - -suite() -> [{ct_hooks,[ts_install_cth]}, {require, snmp_mgr_agent, snmp}]. - -all() -> [{group, app}, {group, node_table}]. - -groups() -> [{app, [], [app, appup]}, - {node_table, [], [nt_basic_types, nt_high_reduction_count]}]. - -init_per_group(_GroupName, Config) -> Config. - -end_per_group(_GroupName, Config) -> Config. - -init_per_suite(Config) -> - ?line application:start(sasl), - ?line application:start(mnesia), - ?line application:start(otp_mibs), - - ok = ct_snmp:start(Config,snmp_mgr_agent), - - %% Load the mibs that should be tested - otp_mib:load(snmp_master_agent), - - Config. - -end_per_suite(Config) -> - PrivDir = ?config(priv_dir, Config), - ConfDir = filename:join(PrivDir,"conf"), - DbDir = filename:join(PrivDir,"db"), - MgrDir = filename:join(PrivDir, "mgr"), - - %% Uload mibs - otp_mib:unload(snmp_master_agent), - - %% Clean up - application:stop(snmp), - application:stop(mnesia), - application:stop(otp_mibs), - - del_dir(ConfDir), - del_dir(DbDir), - (catch del_dir(MgrDir)), - ok. - -%%--------------------------------------------------------------------- -%% Test cases -%%--------------------------------------------------------------------- - -%% Test that the otp_mibs app file is ok -app(Config) when is_list(Config) -> - ok = ?t:app_test(otp_mibs). - -%% Test that the otp_mibs appup file is ok -appup(Config) when is_list(Config) -> - ok = ?t:appup_test(otp_mibs). - -nt_basic_types(suite) -> - []; -nt_basic_types(doc) -> - ["Query every item of the node table and check its variable " - "type and content for sensible values."]; -nt_basic_types(Config) when is_list(Config) -> - ok = otp_mib:update_erl_node_table(), - - NodeNameId = ?erlNodeEntry ++ [?erlNodeName, ?NODE_ENTRY], - {noError, 0, [NodeNameVal]} = snmp_get([NodeNameId]), - #varbind{variabletype = 'OCTET STRING'} = NodeNameVal, - true = is_list(NodeNameVal#varbind.value), - - NodeMachineId = ?erlNodeEntry ++ [?erlNodeMachine, ?NODE_ENTRY], - {noError, 0, [NodeMachineVal]} = snmp_get([NodeMachineId]), - #varbind{variabletype = 'OCTET STRING'} = NodeMachineVal, - true = is_list(NodeMachineVal#varbind.value), - - NodeVersionId = ?erlNodeEntry ++ [?erlNodeVersion, ?NODE_ENTRY], - {noError, 0, [NodeVersionVal]} = snmp_get([NodeVersionId]), - #varbind{variabletype = 'OCTET STRING'} = NodeVersionVal, - true = is_list(NodeVersionVal#varbind.value), - - NodeRunQueueId = ?erlNodeEntry ++ [?erlNodeRunQueue, ?NODE_ENTRY], - {noError, 0, [NodeRunQueueVal]} = snmp_get([NodeRunQueueId]), - #varbind{variabletype = 'Unsigned32'} = NodeRunQueueVal, - true = is_integer(NodeRunQueueVal#varbind.value), - NodeRunQueueVal#varbind.value >= 0, - NodeRunQueueVal#varbind.value =< 4294967295, - - NodeRunTimeId = ?erlNodeEntry ++ [?erlNodeRunTime, ?NODE_ENTRY], - {noError, 0, [NodeRunTimeVal]} = snmp_get([NodeRunTimeId]), - #varbind{variabletype = 'Counter64'} = NodeRunTimeVal, - true = is_integer(NodeRunTimeVal#varbind.value), - NodeRunTimeVal#varbind.value >= 0, - NodeRunTimeVal#varbind.value =< 18446744073709551615, - - NodeWallClockId = ?erlNodeEntry ++ [?erlNodeWallClock, ?NODE_ENTRY], - {noError, 0, [NodeWallClockVal]} = snmp_get([NodeWallClockId]), - #varbind{variabletype = 'Counter64'} = NodeWallClockVal, - true = is_integer(NodeWallClockVal#varbind.value), - NodeWallClockVal#varbind.value >= 0, - NodeWallClockVal#varbind.value =< 18446744073709551615, - - NodeReductionsId = ?erlNodeEntry ++ [?erlNodeReductions, ?NODE_ENTRY], - {noError, 0, [NodeReductionsVal]} = snmp_get([NodeReductionsId]), - #varbind{variabletype = 'Counter64'} = NodeReductionsVal, - true = is_integer(NodeReductionsVal#varbind.value), - NodeReductionsVal#varbind.value >= 0, - NodeReductionsVal#varbind.value =< 18446744073709551615, - - NodeProcessesId = ?erlNodeEntry ++ [?erlNodeProcesses, ?NODE_ENTRY], - {noError, 0, [NodeProcessesVal]} = snmp_get([NodeProcessesId]), - #varbind{variabletype = 'Unsigned32'} = NodeProcessesVal, - true = is_integer(NodeProcessesVal#varbind.value), - NodeProcessesVal#varbind.value >= 0, - NodeProcessesVal#varbind.value =< 4294967295, - - NodeInBytesId = ?erlNodeEntry ++ [?erlNodeInBytes, ?NODE_ENTRY], - {noError, 0, [NodeInBytesVal]} = snmp_get([NodeInBytesId]), - #varbind{variabletype = 'Counter64'} = NodeInBytesVal, - true = is_integer(NodeInBytesVal#varbind.value), - NodeInBytesVal#varbind.value >= 0, - NodeInBytesVal#varbind.value =< 18446744073709551615, - - NodeOutBytesId = ?erlNodeEntry ++ [?erlNodeOutBytes, ?NODE_ENTRY], - {noError, 0, [NodeOutBytesVal]} = snmp_get([NodeOutBytesId]), - #varbind{variabletype = 'Counter64'} = NodeOutBytesVal, - true = is_integer(NodeOutBytesVal#varbind.value), - NodeOutBytesVal#varbind.value >= 0, - NodeOutBytesVal#varbind.value =< 18446744073709551615, - - ok. - -nt_high_reduction_count(suite) -> - []; -nt_high_reduction_count(doc) -> - ["Check that no error occurs when the erlNodeReductions field" - "exceeds the 32bit boundary, this may take about 10min."]; -nt_high_reduction_count(Config) when is_list(Config) -> - NodeReductions = ?erlNodeEntry ++ [?erlNodeReductions, ?NODE_ENTRY], - - BumpFun = fun(F, Limit) -> - case erlang:statistics(reductions) of - {Total, _} when Total < Limit -> - F(F, Limit); - _ -> - ok - end - end, - - ok = otp_mib:update_erl_node_table(), - - {noError, 0, [StartVal]} = snmp_get([NodeReductions]), - #varbind{variabletype = 'Counter64'} = StartVal, - true = is_integer(StartVal#varbind.value), - StartVal#varbind.value >= 0, - case StartVal#varbind.value =< 4294967295 of - true -> - ok = otp_mib:update_erl_node_table(), - BumpFun(BumpFun, 4294967295), - {noError, 0, [EndVal]} = snmp_get([NodeReductions]), - #varbind{variabletype = 'Counter64'} = EndVal, - true = is_integer(EndVal#varbind.value), - EndVal#varbind.value >= 4294967295, - EndVal#varbind.value =< 18446744073709551615; - false -> - %% no need to bump more reductions, since the initial get - %% command already returned successfully with a large value - ok - end. - -%%--------------------------------------------------------------------- -%% Internal functions -%%--------------------------------------------------------------------- - -snmp_get(OIdList) -> - ct_snmp:get_values(otp_mibs_test, OIdList, snmp_mgr_agent). - -del_dir(Dir) -> - io:format("Deleting: ~s~n",[Dir]), - {ok, Files} = file:list_dir(Dir), - FullPathFiles = lists:map(fun(File) -> filename:join(Dir, File) end, Files), - lists:foreach(fun file:delete/1, FullPathFiles), - file:del_dir(Dir). |