megaco_examples_test.erl

来自「OTP是开放电信平台的简称」· ERL 代码 · 共 159 行

ERL
159
字号
%% ``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 via the world wide web 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.%%%% The Initial Developer of the Original Code is Ericsson Utvecklings AB.%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings%% AB. All Rights Reserved.''%%%%     $Id$%%%%----------------------------------------------------------------------%% Purpose: Test application config%%-----------------------------------------------------------------------module(megaco_examples_test).-compile(export_all).-include("megaco_test_lib.hrl").-include_lib("megaco/include/megaco.hrl").-include_lib("megaco/include/megaco_message_v1.hrl").t()     -> megaco_test_lib:t(?MODULE).t(Case) -> megaco_test_lib:t({?MODULE, Case}).%% Test server callbacksinit_per_testcase(Case, Config) ->    put(dbg,true),    purge_examples(),    load_examples(),    megaco:enable_trace(max, io),    megaco_test_lib:init_per_testcase(Case, Config).fin_per_testcase(Case, Config) ->    purge_examples(),    erase(dbg),    megaco:disable_trace(),    megaco_test_lib:fin_per_testcase(Case, Config).example_modules() ->    [megaco_simple_mg, megaco_simple_mgc].load_examples() ->    case code:lib_dir(megaco) of	{error, Reason} ->	    {error, Reason};	Dir ->	    [code:load_abs(filename:join([Dir, examples, simple, M])) || M <- example_modules()]    end.purge_examples() ->    case code:lib_dir(megaco) of	{error, Reason} ->	    {error, Reason};	_Dir ->	    [code:purge(M) || M <- example_modules()]    end.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Top test case%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%all(doc) ->    ["Run all examples mentioned in the documentation",     "Are really all examples covered?"];all(suite) ->    [     simple    ].simple(suite) ->    [];simple(Config) when list(Config) ->    ?ACQUIRE_NODES(1, Config),    d("simple -> proxy start",[]),    ProxyPid = megaco_test_lib:proxy_start({?MODULE, ?LINE}),    d("simple -> start megaco",[]),    ?VERIFY(ok, megaco:start()),        d("simple -> start mgc",[]),    ?APPLY(ProxyPid, fun() -> megaco_simple_mgc:start() end),    receive	{res, _, {ok, MgcAll}} when list(MgcAll) ->	    MgcBad = [MgcRes || MgcRes <- MgcAll, element(1, MgcRes) /= ok],	    ?VERIFY([], MgcBad),	    %% MgcGood = MgcAll -- MgcBad,	    %% MgcRecHandles = [MgcRH || {ok, _MgcPort, MgcRH} <- MgcGood],	    d("simple -> start mg",[]),	    ?APPLY(ProxyPid, fun() -> megaco_simple_mg:start() end),	    receive		{res, _, MgList} when list(MgList), length(MgList) == 4 ->		    d("simple -> received res: ~p",[MgList]),		    		    Verify = 			fun({_MgMid, {TransId, Res}}) when TransId == 1 ->				case Res of				    {ok, [AR]} when record(AR, 'ActionReply') ->					case AR#'ActionReply'.commandReply of					    [{serviceChangeReply, SCR}] ->						case SCR#'ServiceChangeReply'.serviceChangeResult of						    {serviceChangeResParms, MgcMid} when MgcMid /= asn1_NOVALUE ->							ok;						    Error ->							?ERROR(Error)						end;					    Error ->						?ERROR(Error)					end;				    Error ->					?ERROR(Error)				end;			   (Error) ->				?ERROR(Error)			end,		    lists:map(Verify, MgList);		Error ->		    ?ERROR(Error)	    end;	Error ->	    ?ERROR(Error)    end,    d("simple -> verify system_info(users)",[]),    users(),    d("simple -> stop mgc",[]),    ?VERIFY(5, length(megaco_simple_mgc:stop())),    d("simple -> verify system_info(users)",[]),    users(),    d("simple -> stop megaco",[]),    ?VERIFY(ok, megaco:stop()),    d("simple -> kill (exit) ProxyPid: ~p",[ProxyPid]),    exit(ProxyPid, shutdown), % Controlled kill of transport supervisors    ok.users() ->    case (catch megaco:system_info(users)) of	{'EXIT', _} = Error ->	    ?ERROR(Error);	Users ->	    ?LOG("Ok, ~p~n", [Users])    end.d(F,A) ->    d(get(dbg),F,A).d(true,F,A) ->    io:format("DBG: " ++ F ++ "~n",A);d(_, _F, _A) ->    ok.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?