⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 megaco_codec_v1_test.erl

📁 OTP是开放电信平台的简称
💻 ERL
📖 第 1 页 / 共 5 页
字号:
get_dm_timers3([_|Ars]) ->    get_dm_timers3(Ars);get_dm_timers3([]) ->    {error, {no_timers, 'ActionRequest'}}.get_dm_timers4([#'CommandRequest'{command = Cmd}|Cmds]) ->    case get_dm_timers5(Cmd) of	{ok, Timers} ->	    {ok, Timers};	_ ->	    get_dm_timers4(Cmds)    end;get_dm_timers4([_|Cmds]) ->    get_dm_timers4(Cmds);get_dm_timers4([]) ->    {error, {no_timers, 'CommandRequest'}}.get_dm_timers5({modReq, #'AmmRequest'{descriptors = Descriptors}}) ->    get_dm_timers6(Descriptors);get_dm_timers5(R) ->    {error, {no_modReq, R}}.get_dm_timers6([{digitMapDescriptor, #'DigitMapDescriptor'{digitMapValue = Val}}|_]) ->    case Val of	#'DigitMapValue'{startTimer   = T,			 shortTimer   = S,			 longTimer    = L} ->	    {ok, {T, S, L}};	_ ->	    {error, no_value_in_dm}    end;get_dm_timers6([_|Descs]) ->    get_dm_timers6(Descs);get_dm_timers6([]) ->    {error, {no_timers, descriptors}}.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bin_test_msgs(suite) ->    [];bin_test_msgs(Config) when list(Config) ->    ?ACQUIRE_NODES(1, Config),    Msgs = msgs1(),    DynamicDecode = false,    test_msgs(megaco_binary_encoder, DynamicDecode, [], Msgs).   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ber_test_msgs(suite) ->    [];ber_test_msgs(Config) when list(Config) ->    ?ACQUIRE_NODES(1, Config),    Msgs = msgs1(),    DynamicDecode = false,    test_msgs(megaco_ber_encoder, DynamicDecode, [], Msgs).   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ber_bin_test_msgs(suite) ->    [];ber_bin_test_msgs(Config) when list(Config) ->    ?ACQUIRE_NODES(1, Config),    Msgs = msgs1(),    DynamicDecode = true,    test_msgs(megaco_ber_bin_encoder, DynamicDecode, [], Msgs).%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%per_test_msgs(suite) ->    [];per_test_msgs(Config) when list(Config) ->    ?ACQUIRE_NODES(1, Config),    Msgs = msgs1(),    DynamicDecode = false,    test_msgs(megaco_per_encoder, DynamicDecode, [], Msgs).%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%per_bin_test_msgs(suite) ->    [];per_bin_test_msgs(Config) when list(Config) ->    ?ACQUIRE_NODES(1, Config),    Msgs = msgs1(),    DynamicDecode = false,    test_msgs(megaco_per_bin_encoder, DynamicDecode, [], Msgs).%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%erl_dist_m_test_msgs(suite) ->    [];erl_dist_m_test_msgs(Config) when list(Config) ->    ?ACQUIRE_NODES(1, Config),    Msgs = msgs1() ++ msgs2() ++ msgs3(),    DynamicDecode = false,    Conf = [megaco_compressed],     test_msgs(megaco_erl_dist_encoder, DynamicDecode, Conf, Msgs).%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #%% Ticket test cases:%% --------------------------------------------------------------%% Observe that this decode SHALL failcompact_otp4011_msg1(suite) ->    [];compact_otp4011_msg1(Config) when list(Config) ->%     put(severity,trc),%     put(dbg,true),    d("compact_otp4011_msg1 -> entry", []),    ?ACQUIRE_NODES(1, Config),    M = "!/" ?VERSION_STR	" ML T=233350{C=${A=stedevice/01{M{O{MO=SR,RV=OFF,RG=OFF,tdmc/ec=OFF,MO=SR}}}}}",    ok = compact_otp4011(M).%% --------------------------------------------------------------%% Observe that this decode SHALL failcompact_otp4011_msg2(suite) ->    [];compact_otp4011_msg2(Config) when list(Config) ->    d("compact_otp4011_msg2 -> entry", []),    ?ACQUIRE_NODES(1, Config),    M = "!/" ?VERSION_STR	" ML T=233350{C=${A=stedevice/01{M{O{MO=SO,RV=OFF,RG=OFF,tdmc/ec=OFF,MO=SR}}}}}",%     put(severity,trc),%     put(dbg,true),    ok = compact_otp4011(M).%% --------------------------------------------------------------%% Observe that this decode SHALL failcompact_otp4011_msg3(suite) ->    [];compact_otp4011_msg3(Config) when list(Config) ->    d("compact_otp4011_msg3 -> entry", []),    ?ACQUIRE_NODES(1, Config),    M = "!/" ?VERSION_STR	" ML T=233350{C=${A=stedevice/01{M{O{MO=SR,RV=OFF,RG=OFF,tdmc/ec=OFF,MO=SO}}}}}",    %%     put(severity,trc),    %%     put(dbg,true),    ok = compact_otp4011(M).compact_otp4011(M) ->    d("compact_otp4011 -> entry with"      "~n   M: '~s'", [M]),    Bin = list_to_binary(M),    case decode_message(megaco_compact_text_encoder, false, [], Bin) of	{ok, _} ->	    exit({decoded_erroneous_message,M});	{error, Error} when list(Error) -> % Expected result	    d("compact_otp4011 -> expected error result (so far)", []),	    case lists:keysearch(reason,1,Error) of		{value, {reason,Reason}} ->		    d("compact_otp4011 -> expected error: "		      "~n   Reason: ~p", [Reason]),		    case Reason of			{0, megaco_text_parser_v1, 			 {do_merge_control_streamParms, [A,B]}} 			when list(A), record(B, 'LocalControlDescriptor') ->			    case lists:keysearch(mode,1,A) of				{value, {mode, _Mode}} 				when B#'LocalControlDescriptor'.streamMode /= asn1_NOVALUE ->				    d("compact_otp4011 -> expected error",[]),				    ok;				Other ->				    exit({unexpected_mode_reason, {A,B,Other}})			    end;			Other ->			    exit({unexpected_reason, Other})		    end;		false ->		    d("compact_otp4011 -> OUPS, wrong kind of error", []),		    exit({unexpected_result, Error})	    end;	Else ->	    d("compact_otp4011 -> unexpected decode result: ~p", [Else]),	    exit({unexpected_decode_result, Else})    end.    %% --------------------------------------------------------------%% Note that this decode SHALL fail, because of the misspelled%% MEGCAO instead of the correct MEGACO.compact_otp4013_msg1(suite) ->    [];compact_otp4013_msg1(Config) when list(Config) ->    %% put(severity,trc),    %% put(dbg,true),    d("compact_otp4013_msg1 -> entry", []),    ?ACQUIRE_NODES(1, Config),    M = "MEGCAO/1 MG1 T=12345678{C=-{SC=root{SV{MT=RS,RE=901}}}}",    Bin = list_to_binary(M),    case decode_message(megaco_compact_text_encoder, false, [], Bin) of	{ok, _} ->	    exit({decoded_erroneous_message,M});	{error, Reason} when is_list(Reason) ->	    {value, {reason, no_version_found, _}} = 		lists:keysearch(reason, 1, Reason),	    {value, {token, [{'SafeChars',_,"megcao/1"}|_]}} = 		lists:keysearch(token, 1, Reason),	    ok;	Else ->	    exit({unexpected_decode_result,Else})    end.	    %% --------------------------------------------------------------%% %% compact_otp4085_msg1(suite) ->    [];compact_otp4085_msg1(Config) when list(Config) ->    d("compact_otp4085_msg1 -> entry", []),    ?ACQUIRE_NODES(1, Config),    M = compact_otp4085_erroneous_msg(),    Bin = list_to_binary(M),    case decode_message(megaco_compact_text_encoder, false, [], Bin) of	{ok, M} ->	    exit({decoded_erroneous_message,M});	{error, Error} when list(Error) -> % Expected result	    t("compact_otp4085_msg1 -> decode failed", []),	    case lists:keysearch(reason, 1, Error) of		{value, {reason,{999999, Module, Crap}}} ->		    t("compact_otp4085_msg1 -> THE ACTUAL ERROR: "		      "~n   LINE NUMBER: 999999"		      "~n   Module: ~p"		      "~n   Crap:   ~p", [Module, Crap]),		    %% ok;		    exit({decode_failed_999999, Module, Crap});		{value, {reason,{Line, Module, Crap}}} ->		    t("compact_otp4085_msg1 -> Expected: "		      "~n   Line:   ~p"		      "~n   Module: ~p"		      "~n   Crap:   ~p", [Line, Module, Crap]),		    ok;		false ->		    exit({unexpected_result, Error})	    end;	Else ->	    exit({unexpected_decode_result, Else})    end.%% --------------------------------------------------------------%% This test case is just to show that the message used in%% compact_otp4085_msg1 is actually ok when you add '}' at the end.compact_otp4085_msg2(suite) ->    [];compact_otp4085_msg2(Config) when list(Config) ->    d("compact_otp4085_msg1 -> entry", []),    ?ACQUIRE_NODES(1, Config),    M1 = compact_otp4085_erroneous_msg() ++ "}",    Bin = list_to_binary(M1),    case decode_message(megaco_compact_text_encoder, false, [], Bin) of	{ok, M2} ->	    l("compact_otp4085_msg1 -> successfull decode"	      "~n   M2: ~p", [M2]),	    ok;	Else ->	    e("compact_otp4085_msg1 -> decode error"	      "~n   Else: ~p", [Else]),	    exit({unexpected_decode_result,Else})    end.%% This message lack the ending parentesis (}).compact_otp4085_erroneous_msg() ->    M = "!/"	?VERSION_STR	" ML T=11223342{C=${A=${M{O{MO=SR,RV=OFF,RG=OFF},L{v=0,"	"c=ATM NSAP $ ,"	"a=eecid:$ ,"	"m=audio - AAL1/ATMF -,"	"}}},A=stee1181/01{M{O{MO=SR,RV=OFF,RG=OFF,tdmc/ec=off}}}}",    M.%% --------------------------------------------------------------%% %% compact_otp4280_msg1(suite) ->    [];compact_otp4280_msg1(Config) when list(Config) ->    d("compact_otp4280_msg1 -> entry", []),    ?ACQUIRE_NODES(1, Config),    Bin = list_to_binary(compact_otp4280_msg()),    case decode_message(megaco_compact_text_encoder, false, [], Bin) of	{ok, _Msg} ->	    ok;	{error, Error} when list(Error) -> 	    t("compact_otp4280_msg1 -> decode failed", []),	    case lists:keysearch(reason, 1, Error) of		{value, {reason,{Line, Module, Reason} = R}} ->		    t("compact_otp4280_msg1 -> "		      "~n   Line:   ~w"		      "~n   Module: ~w"		      "~n   Reason: ~w", [Line, Module, Reason]),		    exit({decode_failed, R});		false ->		    exit({unexpected_result, Error})	    end;	Else ->	    exit({unexpected_decode_result, Else})    end.compact_otp4280_msg() ->    M = "!/"	?VERSION_STR	" mgw1 P=71853646{C=-{AV=root{M{TS{root/maxnumberofcontexts=49500,"	"root/maxterminationspercontext=2,root/normalmgexecutiontime=200,"	"root/normalmgcexecutiontime=150,"	"root/provisionalresponsetimervalue=2000,BF=OFF,SI=IV}}}}}",    M.%% --------------------------------------------------------------%% This ticket is about comments in a messagecompact_otp4299_msg1(suite) ->    [];compact_otp4299_msg1(Config) when list(Config) ->    d("compact_otp4299_msg1 -> entry", []),    ?ACQUIRE_NODES(1, Config),    Bin = list_to_binary(compact_otp4299_msg()),    case decode_message(megaco_compact_text_encoder, false, [], Bin) of	{ok, _Msg} ->	    ok;	{error, Reason} ->	    exit({decode_error, Reason});	Else ->	    exit({unexpected_decode_result, Else})    end.%% Same message, but this time decoded using the flex scannercompact_otp4299_msg2(suite) ->    [];compact_otp4299_msg2(Config) when list(Config) ->    d("compact_otp4299_msg2 -> entry", []),    ?ACQUIRE_NODES(1, Config),    {Pid, Conf} = compact_otp4299_msg2_init(),        Bin = list_to_binary(compact_otp4299_msg()),    Res = decode_message(megaco_compact_text_encoder, false, [Conf], Bin),    compact_otp4299_msg2_finish(Pid),    case Res of	{ok, _Msg} ->	    ok;	{error, Reason} ->	    exit({decode_error, Reason});	Else ->	    exit({unexpected_decode_result, Else})    end.compact_otp4299_msg2_init() ->    Flag = process_flag(trap_exit, true),    Res = (catch start_flex_scanner()),    process_flag(trap_exit, Flag),    case Res of	{error, Reason} ->	    skip(Reason);	{Pid, Conf} when pid(Pid) ->	    {Pid, Conf}    end.compact_otp4299_msg2_finish(Pid) ->    stop_flex_scanner(Pid).        compact_otp4299_msg() ->    M = ";KALLE\n"	"!/" ?VERSION_STR " mg58_1 P=005197711{; YET ANOTHER COMMENT\n"	"C=035146207{A=mg58_1_1_4_1_23/19; BEFORE COMMA\n"	",; AFTER COMMA\n"	"A=eph58_1/0xA4023371{M{L{\n"	"v=0\n"	"c=ATM NSAP 39.0102.0304.0506.0708.090a.0b58.0100.0000.0000.00\n"	"m=audio - AAL1/ATMF -\n"	"a=eecid:A4023371\n"	"}}; HOBBE\n}; KALLE \"HOBBE \n}}"	";KALLE\n\n",    M.%% --------------------------------------------------------------%% %% compact_otp4359_msg1(suite) ->    [];compact_otp4359_msg1(Config) when list(Config) ->    d("compact_otp4359_msg1 -> entry", []),    ?ACQUIRE_NODES(1, Config),    Bin = list_to_binary(compact_otp4359_msg()),    case decode_message(megaco_compact_text_encoder, false, [], Bin) of	{ok, #'MegacoMessage'{mess = Mess}} ->	    {transactions, Trans} = Mess#'Message'.messageBody,	    case Trans of		[{transactionRequest,#'TransactionRequest'{transactionId = asn1_NOVALUE}}] ->		    ok;		_ ->		    exit({unexpected_transactions, Trans})	    end;	Else ->	    t("compact_otp4359_msg1 -> "	      "~n   Else: ~w", [Else]),	    exit({unexpected_decode_result, Else})    end.compact_otp4359_msg() ->    M = "!/" ?VERSION_STR " ml2 T={C=${A=${M{O {MO=SR,RG=OFF,RV=OFF}}}}}",    M.%% --------------------------------------------------------------%% %% compact_otp4920_msg0(suite) ->    [];compact_otp4920_msg0(Config) when list(Config) ->    d("compact_otp4920_msg0 -> entry", []),    ?ACQUIRE_NODES(1, Config),%    put(dbg,true),    compact_otp4920_msg_1(compact_otp4920_msg0(), true).compact_otp4920_msg1(suite) ->    [];compact_otp4920_msg1(Config) when list(Config) ->    d("compact_otp4920_msg1 -> entry", []),    ?ACQUIRE_NODES(1, Config),%     put(dbg,true),

⌨️ 快捷键说明

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