Loading AtsImsIot/AtsImsIot_Templates.ttcn +20 −0 Original line number Diff line number Diff line Loading @@ -6,12 +6,32 @@ module AtsImsIot_Templates { import from LibIot_TypesAndValues { type InterfaceInfoList, ProtocolFilter, SetFilterReq, SetFilterRsp, Status; } import from AtsImsIot_TypesAndValues {type SipMessage;} import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; group adapterMsgTemplates { template SetFilterReq m_SetFilterReq(ProtocolFilter p_protocol, InterfaceInfoList p_iterfaces) := { protocol := p_protocol, interfaceInfos := p_iterfaces } template SetFilterRsp mw_SetFilterRsp(template Status p_status) := { status := p_status } } group sipTemplates { Loading AtsImsIot/AtsImsIot_TestConfiguration.ttcn +231 −71 Original line number Diff line number Diff line Loading @@ -9,6 +9,31 @@ module AtsImsIot_TestConfiguration { import from Interface_configuration { modulepar PX_EUT_A, PX_EUT_B, PX_PRODUCTS; type InterfaceInfo, Product; } import from LibIot_Functions { function f_setConformanceVerdict, f_setE2EVerdict; } import from AtsImsIot_Templates {template m_SetFilterReq, mw_SetFilterRsp;} import from LibCommon_VerdictControl {type FncRetCode;} with { extension "Project:LibCommon" } import from LibIot_TypesAndValues { type InterfaceInfoList, ProtocolFilter, SetFilterReq, SetFilterRsp, Status; } import from LibIot_TestConfiguration { function f_cf_oracle_up, f_cf_oracle_down; } Loading @@ -19,6 +44,27 @@ module AtsImsIot_TestConfiguration { import from LibIot_TestInterface {type IotEquipmentUser;} group constantDefinitions { //* interface monitor name Gm A const charstring c_gm_A := "Gm A"; //* interface monitor name Gm B const charstring c_gm_B := "Gm B"; //* interface monitor name Mw const charstring c_mw := "Mw"; //* interface monitor name Isc A const charstring c_isc_A := "Isc A"; //* interface monitor name Isc B const charstring c_isc_B := "Isc B"; //* eut trigger name User A const charstring c_trigger_A := "User A"; //* eut trigger name User B const charstring c_trigger_B := "User B"; } group mappingFunctions { /** * * @desc initialize the adapter port of MTC Loading Loading @@ -74,6 +120,7 @@ module AtsImsIot_TestConfiguration { connect(p_monitor:icpPort, self:icpPort); // mapp TSI port map(p_monitor:dPort, system:dPort); map(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_up(p_monitor); } Loading @@ -89,10 +136,47 @@ module AtsImsIot_TestConfiguration { disconnect(p_monitor:icpPort, self:icpPort); // mapp TSI port unmap(p_monitor:dPort, system:dPort); unmap(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_down(p_monitor); } } group adapterConfiguration { function f_cf_setFilter(in SetFilterReq p_req) runs on ImsInterfaceMonitor { var SetFilterRsp v_rsp; var template Status v_status := { code := e_success, reason := * } tc_wait.start; acPort.send(p_req); alt { [] acPort.receive (mw_SetFilterRsp(v_status)) -> value v_rsp { tc_wait.stop; f_setE2EVerdict(pass, "Adapter Configuration: setting monitor filter successful"); f_setConformanceVerdict(pass, "Adapter Configuration: setting monitor filter successful"); } [] acPort.receive (mw_SetFilterRsp(?)) -> value v_rsp { tc_wait.stop; f_setE2EVerdict(inconc, "Adapter Configuration: error while setting monitor filter"); f_setConformanceVerdict(inconc, "Adapter Configuration: error while setting monitor filter"); } [] tc_wait.timeout { f_setE2EVerdict(inconc, "Adapter Configuration: timer expires while waiting for response"); f_setConformanceVerdict(inconc, "Adapter Configuration: timer expires while waiting for response"); } } } } group componentCreation { /** * @desc creates a monitor component * @param p_name name of the monitor component Loading @@ -103,6 +187,82 @@ module AtsImsIot_TestConfiguration { return v_monitor; } } group testConfiguration { /** * @desc * Test configuration function for roaming registration szenario. * More information can be found in ETSI TS 186 011-2 V2.3.1 Cause * 4.3.4. * @param p_Gm Gm interface monitor component * @param p_Mw Mw interface monitor component */ function f_cf_roam_reg( inout ImsInterfaceMonitor p_Gm, inout ImsInterfaceMonitor p_Mw ) runs on ImsTestCoordinator { p_Gm := f_cf_create_monitor(c_gm_A); p_Mw := f_cf_create_monitor(c_mw); f_cf_monitor_up(p_Gm); f_cf_monitor_up(p_Mw); // TODO UE IP address and port is missing p_Gm.start(f_cf_setFilter( m_SetFilterReq( e_sip, f_getInterfaceInfoList("Gm", PX_EUT_A, PX_EUT_B) ) )); p_Gm.done; p_Mw.start(f_cf_setFilter( m_SetFilterReq( e_sip, f_getInterfaceInfoList("Mw", PX_EUT_A, PX_EUT_B) ) )); p_Mw.done; } } function f_getInterfaceInfoList( in charstring p_interfaceName, in integer p_product1, in integer p_product2 ) return InterfaceInfoList { var InterfaceInfoList v_list := { f_getInterfaceInfo(p_interfaceName, PX_PRODUCTS[p_product1]), f_getInterfaceInfo(p_interfaceName, PX_PRODUCTS[p_product2]) }; return v_list; } function f_getInterfaceInfo(in charstring p_interfaceName, Product p_product) return InterfaceInfo { var InterfaceInfo v_info := { IpInterfaceInfo := { { domainName := "invalid", IpAddress := "0.0.0.0", portNumbers := {0} } } }; for(var integer i := 0; i <= lengthof(p_product.monitorInterfaces); i := i + 1) { if(p_product.monitorInterfaces[i].interfaceName == p_interfaceName) { return p_product.monitorInterfaces[i].interfaceInfo; } } return v_info; } } No newline at end of file LibIot/LibIot_TestConfiguration.ttcn +6 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,12 @@ module LibIot_TestConfiguration { import from LibIot_TestInterface { type IotEquipmentUser, OracleClient, OracleServer, TestCoordinator; type InterfaceMonitor, IotEquipmentUser, OracleClient, OracleServer, TestCoordinator; } /** Loading Loading
AtsImsIot/AtsImsIot_Templates.ttcn +20 −0 Original line number Diff line number Diff line Loading @@ -6,12 +6,32 @@ module AtsImsIot_Templates { import from LibIot_TypesAndValues { type InterfaceInfoList, ProtocolFilter, SetFilterReq, SetFilterRsp, Status; } import from AtsImsIot_TypesAndValues {type SipMessage;} import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; group adapterMsgTemplates { template SetFilterReq m_SetFilterReq(ProtocolFilter p_protocol, InterfaceInfoList p_iterfaces) := { protocol := p_protocol, interfaceInfos := p_iterfaces } template SetFilterRsp mw_SetFilterRsp(template Status p_status) := { status := p_status } } group sipTemplates { Loading
AtsImsIot/AtsImsIot_TestConfiguration.ttcn +231 −71 Original line number Diff line number Diff line Loading @@ -9,6 +9,31 @@ module AtsImsIot_TestConfiguration { import from Interface_configuration { modulepar PX_EUT_A, PX_EUT_B, PX_PRODUCTS; type InterfaceInfo, Product; } import from LibIot_Functions { function f_setConformanceVerdict, f_setE2EVerdict; } import from AtsImsIot_Templates {template m_SetFilterReq, mw_SetFilterRsp;} import from LibCommon_VerdictControl {type FncRetCode;} with { extension "Project:LibCommon" } import from LibIot_TypesAndValues { type InterfaceInfoList, ProtocolFilter, SetFilterReq, SetFilterRsp, Status; } import from LibIot_TestConfiguration { function f_cf_oracle_up, f_cf_oracle_down; } Loading @@ -19,6 +44,27 @@ module AtsImsIot_TestConfiguration { import from LibIot_TestInterface {type IotEquipmentUser;} group constantDefinitions { //* interface monitor name Gm A const charstring c_gm_A := "Gm A"; //* interface monitor name Gm B const charstring c_gm_B := "Gm B"; //* interface monitor name Mw const charstring c_mw := "Mw"; //* interface monitor name Isc A const charstring c_isc_A := "Isc A"; //* interface monitor name Isc B const charstring c_isc_B := "Isc B"; //* eut trigger name User A const charstring c_trigger_A := "User A"; //* eut trigger name User B const charstring c_trigger_B := "User B"; } group mappingFunctions { /** * * @desc initialize the adapter port of MTC Loading Loading @@ -74,6 +120,7 @@ module AtsImsIot_TestConfiguration { connect(p_monitor:icpPort, self:icpPort); // mapp TSI port map(p_monitor:dPort, system:dPort); map(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_up(p_monitor); } Loading @@ -89,10 +136,47 @@ module AtsImsIot_TestConfiguration { disconnect(p_monitor:icpPort, self:icpPort); // mapp TSI port unmap(p_monitor:dPort, system:dPort); unmap(p_monitor:acPort, system:acPort); // configure oracle f_cf_oracle_down(p_monitor); } } group adapterConfiguration { function f_cf_setFilter(in SetFilterReq p_req) runs on ImsInterfaceMonitor { var SetFilterRsp v_rsp; var template Status v_status := { code := e_success, reason := * } tc_wait.start; acPort.send(p_req); alt { [] acPort.receive (mw_SetFilterRsp(v_status)) -> value v_rsp { tc_wait.stop; f_setE2EVerdict(pass, "Adapter Configuration: setting monitor filter successful"); f_setConformanceVerdict(pass, "Adapter Configuration: setting monitor filter successful"); } [] acPort.receive (mw_SetFilterRsp(?)) -> value v_rsp { tc_wait.stop; f_setE2EVerdict(inconc, "Adapter Configuration: error while setting monitor filter"); f_setConformanceVerdict(inconc, "Adapter Configuration: error while setting monitor filter"); } [] tc_wait.timeout { f_setE2EVerdict(inconc, "Adapter Configuration: timer expires while waiting for response"); f_setConformanceVerdict(inconc, "Adapter Configuration: timer expires while waiting for response"); } } } } group componentCreation { /** * @desc creates a monitor component * @param p_name name of the monitor component Loading @@ -103,6 +187,82 @@ module AtsImsIot_TestConfiguration { return v_monitor; } } group testConfiguration { /** * @desc * Test configuration function for roaming registration szenario. * More information can be found in ETSI TS 186 011-2 V2.3.1 Cause * 4.3.4. * @param p_Gm Gm interface monitor component * @param p_Mw Mw interface monitor component */ function f_cf_roam_reg( inout ImsInterfaceMonitor p_Gm, inout ImsInterfaceMonitor p_Mw ) runs on ImsTestCoordinator { p_Gm := f_cf_create_monitor(c_gm_A); p_Mw := f_cf_create_monitor(c_mw); f_cf_monitor_up(p_Gm); f_cf_monitor_up(p_Mw); // TODO UE IP address and port is missing p_Gm.start(f_cf_setFilter( m_SetFilterReq( e_sip, f_getInterfaceInfoList("Gm", PX_EUT_A, PX_EUT_B) ) )); p_Gm.done; p_Mw.start(f_cf_setFilter( m_SetFilterReq( e_sip, f_getInterfaceInfoList("Mw", PX_EUT_A, PX_EUT_B) ) )); p_Mw.done; } } function f_getInterfaceInfoList( in charstring p_interfaceName, in integer p_product1, in integer p_product2 ) return InterfaceInfoList { var InterfaceInfoList v_list := { f_getInterfaceInfo(p_interfaceName, PX_PRODUCTS[p_product1]), f_getInterfaceInfo(p_interfaceName, PX_PRODUCTS[p_product2]) }; return v_list; } function f_getInterfaceInfo(in charstring p_interfaceName, Product p_product) return InterfaceInfo { var InterfaceInfo v_info := { IpInterfaceInfo := { { domainName := "invalid", IpAddress := "0.0.0.0", portNumbers := {0} } } }; for(var integer i := 0; i <= lengthof(p_product.monitorInterfaces); i := i + 1) { if(p_product.monitorInterfaces[i].interfaceName == p_interfaceName) { return p_product.monitorInterfaces[i].interfaceInfo; } } return v_info; } } No newline at end of file
LibIot/LibIot_TestConfiguration.ttcn +6 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,12 @@ module LibIot_TestConfiguration { import from LibIot_TestInterface { type IotEquipmentUser, OracleClient, OracleServer, TestCoordinator; type InterfaceMonitor, IotEquipmentUser, OracleClient, OracleServer, TestCoordinator; } /** Loading