Loading DiameterS6a/ttcn/DiameterS6a_HSS_TCFunctions.ttcn3 0 → 100644 +28 −0 Original line number Diff line number Diff line /** * @author STF 466 * @version $Id$ * @desc This module provides S6a test functions used by the DiameterS6a test cases with HSS acting as SUT. */ module DiameterS6a_HSS_TCFunctions { // LibDiameter import from LibDiameter_Interface { type DiameterComponent }; // 5.2.1 MME Role group mmeRole { // 5.2.1.1 Update Location group updateLocation { function f_TC_MME_UL_01() runs on DiameterComponent { } // End of TC function f_TC_MME_UL_01 } // End of group updateLocation } // End of group group mmeRole } // End of module DiameterS6a_HSS_TCFunctions No newline at end of file DiameterS6a/ttcn/DiameterS6a_Templates.ttcn +7 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,12 @@ module DiameterS6a_Templates { import from LibDiameter_TypesAndValues all; import from LibDiameter_Templates all; import from DiameterGx_Templates all; // Diameter S6a import from DiameterS6a_TypesAndValues { type ULR_MSG }; import from DiameterS6a_TypesAndValues all; import from DiameterS6a_PIXITS all; Loading DiameterS6a/ttcn/DiameterS6a_TestCases.ttcn3 0 → 100644 +89 −0 Original line number Diff line number Diff line /** * @author STF 466 * @version $Id$ * @desc This module provides test cases for Diameter S6a test cases. */ module DiameterS6a_TestCases { // LibCommom import from LibCommon_Sync { type ServerSyncComp; group standardSyncPointNames }; // LibDiameter import from LibDiameter_Interface { type DiameterComponent }; // DiameterS6a import from DiameterS6a_TestConfiguration { function f_cf_1S6aUp, f_cf_1S6aDown, f_NrofComps, f_serverSyncNClients }; import from DiameterS6a_HSS_TCFunctions all; import from DiameterS6a_TestSystem { type TestAdapter }; // 5.2.1 MME Role group mmeRole { // 5.2.1.1 Update Location group updateLocation { /** * @desc Verify that the IUT can indicate request for update location information to inform HSS about the identity of the currently serving user * <pre> * Pics Selection: none * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * the IUT indicates a request for update location information and, * the IUT sends a UL-Request with * containing a Session-ID AVP * containing an Auth-Session-State AVP indicating * NO_STATE_MAINTAINED * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing a User-Name AVP * containing a RAT-Type AVP * containing a ULR-Flags AVP with * S6a-indicator bit set * containing a Visited-PLMN-ID AVP * containing a Destination-Realm AVP * } * </pre> * * @version 0.0.8 * @see ETSI TS 102 868-2 v1.1.1 TP_MME_UL_01 */ testcase TC_MME_UL_01() runs on ServerSyncComp system TestAdapter { // Local variables var DiameterComponent v_diameterComponent_hss; // Test control // Test component configuration f_cf_1S6aUp(v_diameterComponent_hss); // Start v_diameterComponent_hss.start(f_TC_MME_UL_01()); // synchronize PTC on 3 sychronization points f_serverSyncNClients(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1S6aUp(v_diameterComponent_hss); } // End of testcase TC_MME_UL_01 } // End of group updateLocation } // End of group group mmeRole } // End of module DiameterS6a_TestCases DiameterS6a/ttcn/DiameterS6a_TestConfiguration.ttcn3 0 → 100644 +117 −0 Original line number Diff line number Diff line /** * @author STF 466 * @version $Id$ * @desc This module provides test component configurations for DiameterS6a tests. */ module DiameterS6a_TestConfiguration { // LibCommom import from LibCommon_Sync { type ServerSyncComp, SyncPointList; function f_serverWaitForAllClientsToStop, f_serverSyncClientsTimed; modulepar PX_TSYNC_TIME_LIMIT }; import from LibCommon_VerdictControl { type FncRetCode; function f_setVerdict }; // LibDiameter import from LibDiameter_Interface { type DiameterComponent }; import from LibDiameter_PIXITS { modulepar PX_DIAM_LLP_ENABLED }; /** * @desc f_NrofComps returns the number of test components based on the PIXIT value PX_Rxsupportt */ function f_NrofComps() return integer { return 1; } // End of function f_NrofComps group cfUp { /** * @desc Creates test configuration of CF_1Sa6 - HSS is the SUT * @param p_diameterComponent_pcef pcef component */ function f_cf_1S6aUp ( out DiameterComponent p_diameterComponent_pcef ) runs on ServerSyncComp { // Variables var FncRetCode v_ret := e_success; // Create p_diameterComponent_pcef := DiameterComponent.create; // Connect connect( p_diameterComponent_pcef:syncPort, self:syncPort ); // Map map( p_diameterComponent_pcef:DIAMP, system:PCEF_Gx ); // Diameter Init test Configuration if ( PX_DIAM_LLP_ENABLED ) { map( p_diameterComponent_pcef:LLPP, system:LLIMS ); // Lower Layer Primitive Init test Configuration } f_setVerdict( v_ret ); } // End of funtion f_cf_1S6aUp } // End of group cfUp group cfDown { /** * @desc Deletes configuration of CF_1Sa6 - HSS is the SUT * @param p_diameterComponent_hss diameter component */ function f_cf_1S6aDown( in DiameterComponent p_diameterComponent_hss ) runs on ServerSyncComp { f_serverWaitForAllClientsToStop(); // Disconnect disconnect( p_diameterComponent_hss:syncPort, self:syncPort ); // Unmap unmap( p_diameterComponent_hss:DIAMP, system:PCEF_Gx ); if ( PX_DIAM_LLP_ENABLED ) { unmap( p_diameterComponent_hss:LLPP, system:LLIMS ); } } // End of function f_cf_1S6aDown } // End of group cfDown group syncNoStop { // Same functions as in LibCommon but without call of f_serverWaitForAllClientsToStop() /** * @desc * Implements synchronization of N clients from server side on one or more synchronization points. If problem occurs, then server sends STOP to all * clients. Waits for PX_TSYNC_TIME_LIMIT to let clients finish executing their behavior until this synchronization point. After passing all * synchronization points successfuly the server waits for all clients to stop. See f_serverSyncClientsTimed for overwriting this the timing * constraint! This function sets the server component verdict. * @remark The use of this function requires prior connection of the server sync ports! * @see LibCommon_Sync.f_connect4SelfOrClientSync * @see LibCommon_Sync.PX_TSYNC_TIME_LIMIT * @see LibCommon_Sync.f_serverSyncClientsTimed * @see LibCommon_Sync.f_serverWaitForAllClientsToStop * @param p_numClients number of synchronization clients * @param p_syncPointIds list of synchronization point name/ids */ function f_serverSyncNClients ( in integer p_numClients, in SyncPointList p_syncPointIds ) runs on ServerSyncComp { var integer i, v_noOfSyncIds := lengthof( p_syncPointIds ); for ( i := 0; i < v_noOfSyncIds; i := i + 1 ) { f_serverSyncClientsTimed( p_numClients, p_syncPointIds[i], PX_TSYNC_TIME_LIMIT ); } } } // end group syncNoStop } // End of module DiameterS6a_TestConfiguration No newline at end of file DiameterS6a/ttcn/DiameterS6a_TestControl.ttcn3 0 → 100644 +20 −0 Original line number Diff line number Diff line /** * @author STF 466 * @version $Id$ * @desc This module provides execution part for S6a test cases. */ module DiameterS6a_TestControl { // DiameterS6a import from DiameterS6a_TestCases all; control { execute(TC_MME_UL_01()); } // End of 'Control' statement } // End of module DiameterS6a_TestControl No newline at end of file Loading
DiameterS6a/ttcn/DiameterS6a_HSS_TCFunctions.ttcn3 0 → 100644 +28 −0 Original line number Diff line number Diff line /** * @author STF 466 * @version $Id$ * @desc This module provides S6a test functions used by the DiameterS6a test cases with HSS acting as SUT. */ module DiameterS6a_HSS_TCFunctions { // LibDiameter import from LibDiameter_Interface { type DiameterComponent }; // 5.2.1 MME Role group mmeRole { // 5.2.1.1 Update Location group updateLocation { function f_TC_MME_UL_01() runs on DiameterComponent { } // End of TC function f_TC_MME_UL_01 } // End of group updateLocation } // End of group group mmeRole } // End of module DiameterS6a_HSS_TCFunctions No newline at end of file
DiameterS6a/ttcn/DiameterS6a_Templates.ttcn +7 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,12 @@ module DiameterS6a_Templates { import from LibDiameter_TypesAndValues all; import from LibDiameter_Templates all; import from DiameterGx_Templates all; // Diameter S6a import from DiameterS6a_TypesAndValues { type ULR_MSG }; import from DiameterS6a_TypesAndValues all; import from DiameterS6a_PIXITS all; Loading
DiameterS6a/ttcn/DiameterS6a_TestCases.ttcn3 0 → 100644 +89 −0 Original line number Diff line number Diff line /** * @author STF 466 * @version $Id$ * @desc This module provides test cases for Diameter S6a test cases. */ module DiameterS6a_TestCases { // LibCommom import from LibCommon_Sync { type ServerSyncComp; group standardSyncPointNames }; // LibDiameter import from LibDiameter_Interface { type DiameterComponent }; // DiameterS6a import from DiameterS6a_TestConfiguration { function f_cf_1S6aUp, f_cf_1S6aDown, f_NrofComps, f_serverSyncNClients }; import from DiameterS6a_HSS_TCFunctions all; import from DiameterS6a_TestSystem { type TestAdapter }; // 5.2.1 MME Role group mmeRole { // 5.2.1.1 Update Location group updateLocation { /** * @desc Verify that the IUT can indicate request for update location information to inform HSS about the identity of the currently serving user * <pre> * Pics Selection: none * Initial conditions: * with { * * } * Expected behaviour: * ensure that { * the IUT indicates a request for update location information and, * the IUT sends a UL-Request with * containing a Session-ID AVP * containing an Auth-Session-State AVP indicating * NO_STATE_MAINTAINED * containing an Origin-Host AVP * containing an Origin-Realm AVP * containing a Destination-Realm AVP * containing a User-Name AVP * containing a RAT-Type AVP * containing a ULR-Flags AVP with * S6a-indicator bit set * containing a Visited-PLMN-ID AVP * containing a Destination-Realm AVP * } * </pre> * * @version 0.0.8 * @see ETSI TS 102 868-2 v1.1.1 TP_MME_UL_01 */ testcase TC_MME_UL_01() runs on ServerSyncComp system TestAdapter { // Local variables var DiameterComponent v_diameterComponent_hss; // Test control // Test component configuration f_cf_1S6aUp(v_diameterComponent_hss); // Start v_diameterComponent_hss.start(f_TC_MME_UL_01()); // synchronize PTC on 3 sychronization points f_serverSyncNClients(f_NrofComps(), {c_prDone, c_tbDone, c_poDone}); f_cf_1S6aUp(v_diameterComponent_hss); } // End of testcase TC_MME_UL_01 } // End of group updateLocation } // End of group group mmeRole } // End of module DiameterS6a_TestCases
DiameterS6a/ttcn/DiameterS6a_TestConfiguration.ttcn3 0 → 100644 +117 −0 Original line number Diff line number Diff line /** * @author STF 466 * @version $Id$ * @desc This module provides test component configurations for DiameterS6a tests. */ module DiameterS6a_TestConfiguration { // LibCommom import from LibCommon_Sync { type ServerSyncComp, SyncPointList; function f_serverWaitForAllClientsToStop, f_serverSyncClientsTimed; modulepar PX_TSYNC_TIME_LIMIT }; import from LibCommon_VerdictControl { type FncRetCode; function f_setVerdict }; // LibDiameter import from LibDiameter_Interface { type DiameterComponent }; import from LibDiameter_PIXITS { modulepar PX_DIAM_LLP_ENABLED }; /** * @desc f_NrofComps returns the number of test components based on the PIXIT value PX_Rxsupportt */ function f_NrofComps() return integer { return 1; } // End of function f_NrofComps group cfUp { /** * @desc Creates test configuration of CF_1Sa6 - HSS is the SUT * @param p_diameterComponent_pcef pcef component */ function f_cf_1S6aUp ( out DiameterComponent p_diameterComponent_pcef ) runs on ServerSyncComp { // Variables var FncRetCode v_ret := e_success; // Create p_diameterComponent_pcef := DiameterComponent.create; // Connect connect( p_diameterComponent_pcef:syncPort, self:syncPort ); // Map map( p_diameterComponent_pcef:DIAMP, system:PCEF_Gx ); // Diameter Init test Configuration if ( PX_DIAM_LLP_ENABLED ) { map( p_diameterComponent_pcef:LLPP, system:LLIMS ); // Lower Layer Primitive Init test Configuration } f_setVerdict( v_ret ); } // End of funtion f_cf_1S6aUp } // End of group cfUp group cfDown { /** * @desc Deletes configuration of CF_1Sa6 - HSS is the SUT * @param p_diameterComponent_hss diameter component */ function f_cf_1S6aDown( in DiameterComponent p_diameterComponent_hss ) runs on ServerSyncComp { f_serverWaitForAllClientsToStop(); // Disconnect disconnect( p_diameterComponent_hss:syncPort, self:syncPort ); // Unmap unmap( p_diameterComponent_hss:DIAMP, system:PCEF_Gx ); if ( PX_DIAM_LLP_ENABLED ) { unmap( p_diameterComponent_hss:LLPP, system:LLIMS ); } } // End of function f_cf_1S6aDown } // End of group cfDown group syncNoStop { // Same functions as in LibCommon but without call of f_serverWaitForAllClientsToStop() /** * @desc * Implements synchronization of N clients from server side on one or more synchronization points. If problem occurs, then server sends STOP to all * clients. Waits for PX_TSYNC_TIME_LIMIT to let clients finish executing their behavior until this synchronization point. After passing all * synchronization points successfuly the server waits for all clients to stop. See f_serverSyncClientsTimed for overwriting this the timing * constraint! This function sets the server component verdict. * @remark The use of this function requires prior connection of the server sync ports! * @see LibCommon_Sync.f_connect4SelfOrClientSync * @see LibCommon_Sync.PX_TSYNC_TIME_LIMIT * @see LibCommon_Sync.f_serverSyncClientsTimed * @see LibCommon_Sync.f_serverWaitForAllClientsToStop * @param p_numClients number of synchronization clients * @param p_syncPointIds list of synchronization point name/ids */ function f_serverSyncNClients ( in integer p_numClients, in SyncPointList p_syncPointIds ) runs on ServerSyncComp { var integer i, v_noOfSyncIds := lengthof( p_syncPointIds ); for ( i := 0; i < v_noOfSyncIds; i := i + 1 ) { f_serverSyncClientsTimed( p_numClients, p_syncPointIds[i], PX_TSYNC_TIME_LIMIT ); } } } // end group syncNoStop } // End of module DiameterS6a_TestConfiguration No newline at end of file
DiameterS6a/ttcn/DiameterS6a_TestControl.ttcn3 0 → 100644 +20 −0 Original line number Diff line number Diff line /** * @author STF 466 * @version $Id$ * @desc This module provides execution part for S6a test cases. */ module DiameterS6a_TestControl { // DiameterS6a import from DiameterS6a_TestCases all; control { execute(TC_MME_UL_01()); } // End of 'Control' statement } // End of module DiameterS6a_TestControl No newline at end of file