megaco_codec_v1_test.erl

来自「OTP是开放电信平台的简称」· ERL 代码 · 共 2,236 行 · 第 1/5 页

ERL
2,236
字号
    compact_otp4920_msg_1(compact_otp4920_msg1(), false).compact_otp4920_msg2(suite) ->    [];compact_otp4920_msg2(Config) when list(Config) ->    d("compact_otp4920_msg2 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_1(compact_otp4920_msg2(), false).compact_otp4920_msg3(suite) ->    [];compact_otp4920_msg3(Config) when list(Config) ->    d("compact_otp4920_msg3 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_1(compact_otp4920_msg3(), true).compact_otp4920_msg4(suite) ->    [];compact_otp4920_msg4(Config) when list(Config) ->    d("compact_otp4920_msg4 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_1(compact_otp4920_msg4(), true).compact_otp4920_msg5(suite) ->    [];compact_otp4920_msg5(Config) when list(Config) ->    d("compact_otp4920_msg5 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_1(compact_otp4920_msg5(), true).compact_otp4920_msg6(suite) ->    [];compact_otp4920_msg6(Config) when list(Config) ->    d("compact_otp4920_msg6 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_1(compact_otp4920_msg6(), true).compact_otp4920_msg7(suite) ->    [];compact_otp4920_msg7(Config) when list(Config) ->    d("compact_otp4920_msg7 -> entry", []),    ?ACQUIRE_NODES(1, Config),%    put(dbg,true),    compact_otp4920_msg_1(compact_otp4920_msg7(), true).compact_otp4920_msg8(suite) ->    [];compact_otp4920_msg8(Config) when list(Config) ->    d("compact_otp4920_msg8 -> entry", []),    ?ACQUIRE_NODES(1, Config),%    put(dbg,true),    compact_otp4920_msg_1(compact_otp4920_msg8(), false).compact_otp4920_msg9(suite) ->    [];compact_otp4920_msg9(Config) when list(Config) ->    d("compact_otp4920_msg9 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_1(compact_otp4920_msg9(), false).compact_otp4920_msg10(suite) ->    [];compact_otp4920_msg10(Config) when list(Config) ->    d("compact_otp4920_msg10 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_1(compact_otp4920_msg10(), false).compact_otp4920_msg11(suite) ->    [];compact_otp4920_msg11(Config) when list(Config) ->    d("compact_otp4920_msg11 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_1(compact_otp4920_msg11(), false).compact_otp4920_msg12(suite) ->    [];compact_otp4920_msg12(Config) when list(Config) ->    d("compact_otp4920_msg12 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_1(compact_otp4920_msg12(), true).%% Duplicate paddingcompact_otp4920_msg20(suite) ->    [];compact_otp4920_msg20(Config) when list(Config) ->    d("compact_otp4920_msg20 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_2(compact_otp4920_msg20(), bad_mid_duplicate_padding).%% Lengthcompact_otp4920_msg21(suite) ->    [];compact_otp4920_msg21(Config) when list(Config) ->    d("compact_otp4920_msg21 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_2(compact_otp4920_msg21(), bad_mid_ip6addr_length).%% Lengthcompact_otp4920_msg22(suite) ->    [];compact_otp4920_msg22(Config) when list(Config) ->    d("compact_otp4920_msg22 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_2(compact_otp4920_msg22(), bad_mid_ip6addr_length).%% Lengthcompact_otp4920_msg23(suite) ->    [];compact_otp4920_msg23(Config) when list(Config) ->    d("compact_otp4920_msg23 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_2(compact_otp4920_msg23(), bad_mid_ip6addr_length).%% Lengthcompact_otp4920_msg24(suite) ->    [];compact_otp4920_msg24(Config) when list(Config) ->    d("compact_otp4920_msg24 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_2(compact_otp4920_msg24(), bad_mid_ip6addr_length).%% Lengthcompact_otp4920_msg25(suite) ->    [];compact_otp4920_msg25(Config) when list(Config) ->    d("compact_otp4920_msg25 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp4920_msg_2(compact_otp4920_msg25(), bad_mid_ip6addr_length).compact_otp4920_msg_1(M1, CheckEqual) ->    Bin1 = list_to_binary(M1),    case decode_message(megaco_compact_text_encoder, false, [], Bin1) of	{ok, Msg} -> 	    io:format(" decoded", []),	    case encode_message(megaco_compact_text_encoder, [], Msg) of		{ok, Bin1} ->		    io:format(", encoded - equal:", []),		    ok;		{ok, Bin2} when CheckEqual == true ->		    M2 = binary_to_list(Bin2),		    io:format(", encoded - not equal:", []),		    exit({messages_not_equal, M1, M2});		{ok, _Bin2} ->		    io:format(", encoded:", []),		    ok;		Else ->		    io:format(", encode failed:", []),		    exit({unexpected_encode_result, Else})	    end;	Else ->	    io:format("decode failed:", []),	    exit({unexpected_decode_result, Else})    end.compact_otp4920_msg_2(M1, ExpectedReason) ->    Bin = list_to_binary(M1),    case decode_message(megaco_compact_text_encoder, false, [], Bin) of	{ok, Msg} ->	    io:format("unexpected successfull decode", []),	    exit({unexpected_encode_ok, Msg});	{error, [{reason, {__Line, _Mod, Reason}}|_]} ->	    case element(1, Reason) of		ExpectedReason ->		    ok;		_ ->		    exit({unexpected_decode_error_reason, 			  ExpectedReason, Reason})	    end;	{error, [{reason, {_Mod, Reason}}|_]} ->	    case element(1, Reason) of		ExpectedReason ->		    ok;		_ ->		    exit({unexpected_decode_error_reason, 			  ExpectedReason, Reason})	    end;	Else ->	    io:format("unexpected decode result", []),	    exit({unexpected_decode_result, Else})	        end.compact_otp4920_msg0() ->    M = "!/" ?VERSION_STR " [192.168.30.1]\nT=100{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg1() ->    M = "!/" ?VERSION_STR " [2031:0000:130F:0000:0000:09C0:876A:130B]\nT=101{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg2() ->    M = "!/" ?VERSION_STR " [2031:0:130F:0:0:9C0:876A:130B]\nT=102{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg3() ->    M = "!/" ?VERSION_STR " [2031:0:130F::9C0:876A:130B]\nT=103{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg4() ->    M = "!/" ?VERSION_STR " [::1]\nT=104{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg5() ->    M = "!/" ?VERSION_STR " [::]\nT=105{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg6() ->    M = "!/" ?VERSION_STR " [1::]\nT=106{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg7() ->    M = "!/" ?VERSION_STR " [FEDC:1::]\nT=107{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg8() ->    M = "!/" ?VERSION_STR " [2031:0:130F:0:0:9C0:135.106.19.11]\nT=108{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg9() ->    M = "!/" ?VERSION_STR " [2031:0:130F::9C0:135.106.19.11]\nT=109{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg10() ->    M = "!/" ?VERSION_STR " [::FFFF:192.168.30.1]\nT=110{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg11() ->    M = "!/" ?VERSION_STR " [::192.168.30.1]\nT=111{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp4920_msg12() ->    M = "!/" ?VERSION_STR " [::C0A8:1E01]\nT=112{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.%% Illegal: only one :: allowedcompact_otp4920_msg20() ->    M = "!/" ?VERSION_STR " [2031::130F::9C0]\nT=120{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.%% Illegal: lengthcompact_otp4920_msg21() ->    M = "!/" ?VERSION_STR " [2031:FFEE:0000:130F:0000:0000:09C0:876A:130B]\nT=121{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.%% Illegal: lengthcompact_otp4920_msg22() ->    M = "!/" ?VERSION_STR " [2031:FFEE:0:130F:0:0:9C0:135.106.19.11]\nT=122{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.%% Illegal: lengthcompact_otp4920_msg23() ->    M = "!/" ?VERSION_STR " [2031:FFEE:0000:130F:2132:4354::09C0:876A:130B]\nT=123{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.%% Illegal: lengthcompact_otp4920_msg24() ->    M = "!/" ?VERSION_STR " [::2031:FFEE:0000:130F:2132:4354:09C0:876A:130B]\nT=124{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.%% Illegal: lengthcompact_otp4920_msg25() ->    M = "!/" ?VERSION_STR " [2031:FFEE:0000:130F:2132:4354:09C0:876A:130B::]\nT=125{C=${A=${M{O{MO=SR,RG=OFF,RV=OFF}}}}}",    M.compact_otp5186_msg01(suite) ->    [];compact_otp5186_msg01(Config) when list(Config) ->    d("compact_otp5186_msg01 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp5186_msg_1(compact_otp5186_msg01(), error, ignore).compact_otp5186_msg02(suite) ->    [];compact_otp5186_msg02(Config) when list(Config) ->    d("compact_otp5186_msg02 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp5186_msg_1(compact_otp5186_msg02(), ok, ok).compact_otp5186_msg03(suite) ->    [];compact_otp5186_msg03(Config) when list(Config) ->    d("compact_otp5186_msg03 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp5186_msg_2(compact_otp5186_msg03(), ok, ok).compact_otp5186_msg04(suite) ->    [];compact_otp5186_msg04(Config) when list(Config) ->    d("compact_otp5186_msg04 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp5186_msg_2(compact_otp5186_msg04(), ok, ok).compact_otp5186_msg05(suite) ->    [];compact_otp5186_msg05(Config) when list(Config) ->    d("compact_otp5186_msg05 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp5186_msg_2(compact_otp5186_msg05(), ok, ok).compact_otp5186_msg06(suite) ->    [];compact_otp5186_msg06(Config) when list(Config) ->    d("compact_otp5186_msg06 -> entry", []),    ?ACQUIRE_NODES(1, Config),    compact_otp5186_msg_2(compact_otp5186_msg06(), ok, ok).compact_otp5186_msg_1(M1, DecodeExpect, EncodeExpect) ->    Bin1 = list_to_binary(M1),    case decode_message(megaco_compact_text_encoder, false, [], Bin1) of	{ok, Msg} when DecodeExpect == ok -> 	    io:format(" decoded", []),	    case encode_message(megaco_compact_text_encoder, [], Msg) of		{ok, Bin1} when EncodeExpect == ok ->		    io:format(", encoded - equal:", []),		    ok;		{ok, Bin2} when EncodeExpect == ok ->		    M2 = binary_to_list(Bin2),		    io:format(", encoded - not equal:", []),		    exit({messages_not_equal, Msg, M1, M2});		{ok, Bin3} when EncodeExpect == error ->		    M3 = binary_to_list(Bin3),		    io:format(", unexpected encode:", []),		    exit({unexpected_encode_success, Msg, M1, M3});		_Else when EncodeExpect == error ->		    io:format(", encode failed ", []),		    ok	    end;	{ok, Msg} when DecodeExpect == error -> 	    io:format(" decoded", []),	    exit({unexpected_decode_success, Msg});	_Else when DecodeExpect == error ->	    io:format(" decode failed ", []),	    ok;	Else when DecodeExpect == ok ->	    io:format(" decode failed ", []),	    exit({unexpected_decode_result, Else})    end.compact_otp5186_msg_2(Msg1, EncodeExpect, DecodeExpect) ->    case encode_message(megaco_compact_text_encoder, [], Msg1) of	{ok, Bin} when EncodeExpect == ok -> 	    io:format(" encoded", []),	    case decode_message(megaco_compact_text_encoder, false, [], Bin) of		{ok, Msg1} when DecodeExpect == ok ->		    io:format(", decoded - equal:", []),		    ok;		{ok, Msg2} when DecodeExpect == ok ->		    M = binary_to_list(Bin),		    case (catch compact_otp5186_check_megamsg(Msg1, Msg2)) of			ok ->			    io:format(", decoded - not equal - ok:", []),			    ok;			{'EXIT', Reason} ->			    io:format(", decoded - not equal:", []),			    exit({messages_not_equal, M, Reason, Msg1, Msg2})		    end;		{ok, Msg3} when DecodeExpect == error ->		    M = binary_to_list(Bin),		    io:format(", decoded:", []),		    exit({unexpected_decode_success, M, Msg1, Msg3});		Else when DecodeExpect == ok ->		    M = binary_to_list(Bin),		    io:format(", decode failed ", []),		    exit({unexpected_decode_success, Msg1, M, Else});		_Else when DecodeExpect == error ->		    io:format(", decode failed ", []),		    ok	    end;	{ok, Bin} when EncodeExpect == error ->	    M = binary_to_list(Bin),	    io:format(" encoded", []),	    exit({unexpected_encode_success, Msg1, M});	_Else when EncodeExpect == error ->	    io:format(" encode failed ", []),	    ok;	Else when EncodeExpect == ok ->	    io:format(" encode failed ", []),	    exit({unexpected_encode_result, Else})    end.%% --						   compact_otp5186_msg01() ->    "!/1 <mg5>\nP=67111298{C=2699{AV=mg5_ipeph/0x0f0001{}}}".compact_otp5186_msg02() ->    "!/1 <mg5>\nP=67111298{C=2699{AV=mg5_ipeph/0x0f0001}}".compact_otp5186_msg03() ->    {'MegacoMessage',     asn1_NOVALUE,     {'Message',      1,      {domainName,{'DomainName',"mg5",asn1_NOVALUE}},      {transactions,       [{transactionReply,	 {'TransactionReply',67111298,asn1_NOVALUE,	  {actionReplies,[			  {'ActionReply',2699,asn1_NOVALUE,asn1_NOVALUE,			   [			    {auditValueReply,			     {auditResult,			      {'AuditResult',			       {megaco_term_id,false,["mg5_ipeph","0x0f0001"]},			       [			       ]			      }			     }			    }			   ]			  }			 ]	  }	 }	}       ]      }     }    }.compact_otp5186_msg04() ->    {'MegacoMessage',asn1_NOVALUE,     {'Message',1,{domainName,{'DomainName',"mg5",asn1_NOVALUE}},      {transactions,       [{transactionReply,	 {'TransactionReply',67111298,asn1_NOVALUE,	  {actionReplies,[			  {'ActionReply',2699,asn1_NOVALUE,asn1_NOVALUE,			   [			    {auditValueReply,			     {auditResult,			      {'AuditResult',			       {megaco_term_id,false,["mg5_ipeph","0x0f0001"]},			       [				{emptyDescriptors,				 {'AuditDescriptor',asn1_NOVALUE}				}			       ]			      }			     }			    }			   ]			  }			 ]	  }	 }

⌨️ 快捷键说明

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