Commit dffc5aac authored by rennoch's avatar rennoch
Browse files

correction and completion of PUE tests using PurgeUE, NOT ProfileUpdate

parent fcac044c
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -1170,7 +1170,7 @@ module DiameterS6a_HSS_TCFunctions {
            // Test Body
            // Clause 'when': the IUT receives a PU-Request
            f_triggerPurMessage(
                md_PUR_TCs( 
                md_PUER_TCs( 
                    vc_sessionId,                                   // containing a Session-ID AVP
                    md_purBodyAvps_TC_01(
                        md_auth_Session_State_noStateMaintained,    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
@@ -1227,7 +1227,7 @@ module DiameterS6a_HSS_TCFunctions {
            // Test Body
            // Clause 'when': the IUT receives a PU-Request
            f_triggerPurMessage(
                md_PUR_TCs( 
                md_PUER_TCs( 
                    vc_sessionId,                                                   // containing a Session-ID AVP
                    md_purBodyAvps_TC_01(
                        md_auth_Session_State_noStateMaintained,                    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
@@ -1323,7 +1323,7 @@ module DiameterS6a_HSS_TCFunctions {
                    log("*** " & __SCOPE__ & ": INFO: Expected UL-Answer message was received. ***");
                    // Trigger a PU-Request
                    f_triggerPurMessage(                                            // and, the IUT receives a PU-Request
                        md_PUR_TCs( 
                        md_PUER_TCs( 
                            vc_sessionId,                                           // containing a Session-ID AVP
                            md_purBodyAvps_TC_03(
                                md_auth_Session_State_noStateMaintained,            // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
@@ -1416,7 +1416,7 @@ module DiameterS6a_HSS_TCFunctions {
                    log("*** " & __SCOPE__ & ": INFO: Expected UL-Answer message was received. ***");
                    // Trigger a PU-Request
                    f_triggerPurMessage(                                            // and, the IUT receives a PU-Request
                        md_PUR_TCs( 
                        md_PUER_TCs( 
                            vc_sessionId,                                           // containing a Session-ID AVP
                            md_purBodyAvps_TC_03(
                                md_auth_Session_State_noStateMaintained,
@@ -1473,7 +1473,7 @@ module DiameterS6a_HSS_TCFunctions {
            // Test Body
            // Clause 'when': the IUT receives a PU-Request
            f_triggerPurMessage(
                md_PUR_TCs( 
                md_PUER_TCs( 
                    vc_sessionId,
                    md_purBodyAvps_TC_04(
                        md_auth_Session_State_noStateMaintained,
@@ -1532,7 +1532,7 @@ module DiameterS6a_HSS_TCFunctions {
            // Test Body
            // Clause 'when': the IUT receives a PU-Request
            f_triggerPurMessage(
                md_PUR_TCs( 
                md_PUER_TCs( 
                    vc_sessionId,
                    md_purBodyAvps_TC_04(
                        md_auth_Session_State_noStateMaintained,
@@ -1590,7 +1590,7 @@ module DiameterS6a_HSS_TCFunctions {
            // Test Body
            // Clause 'when': the IUT receives a PU-Request
            f_triggerPurMessage(
                md_PUR_TCs( 
                md_PUER_TCs( 
                    vc_sessionId,
                    md_purBodyAvps_TC_04(
                        md_auth_Session_State_noStateMaintained,
@@ -1648,7 +1648,7 @@ module DiameterS6a_HSS_TCFunctions {
            // Test Body
            // Clause 'when': the IUT receives a PU-Request
            f_triggerPurMessage(
                md_PUR_TCs( 
                md_PUER_TCs( 
                    vc_sessionId,
                    md_purBodyAvps_TC_04(
                        md_auth_Session_State_noStateMaintained,
+108 −12
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ module DiameterS6a_MME_TCFunctions {
       type all
    };
    import from LibDiameter_Templates  {
        template m_resultCode_diameterSuccess, m_resultCode
        template m_resultCode_diameterSuccess, m_resultCode, m_supportedFeatures, m_featureList, m_featureListId
    };
    // DiameterS6a
    import from DiameterS6a_TypesAndValues {
@@ -47,6 +47,8 @@ module DiameterS6a_MME_TCFunctions {
        type 
            TestAdapter
    };
    import from LibDiameter_Templates {template m_vendorId};
    import from LibDiameter_TypesAndValues {const c_vendId3gpp};
    
    // 5.2.1.1 Update Location
    group updateLocation {
@@ -83,7 +85,7 @@ module DiameterS6a_MME_TCFunctions {
                                md_ulr_Flags_AVP(PX_ULR_FLAGS_S6a_IND_SET), // containing a ULR-Flags AVP with S6a-indicator bit set
                                m_visitedPLMNId_dummy                       // containing a Visited-PLMN-ID AVP
                )))) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                [] tc_ac.timeout {
@@ -125,7 +127,7 @@ module DiameterS6a_MME_TCFunctions {
                                    PX_ULR_FLAGS_S6a_IND_SET +              //     S6a-indicator bit set
                                    PX_ULR_FLAGS_S6a_SINGLE_REG             //     Single-Registration-Indication bit set
                ))))) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                [] tc_ac.timeout {
@@ -175,7 +177,7 @@ module DiameterS6a_MME_TCFunctions {
                                ),
                                m_visitedPLMNId_dummy                       // containing a Visited-PLMN-ID AVP
                )))) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                [] tc_ac.timeout {
@@ -443,7 +445,7 @@ module DiameterS6a_MME_TCFunctions {
                                ? //mw_supportedFeatures                                // containing a Supported-Features AVP
// FIXME How to check this constraint?                                    complement()                                    //     not containing any SGSN specific features
                )))) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                [] tc_ac.timeout {
@@ -568,13 +570,32 @@ module DiameterS6a_MME_TCFunctions {
        function f_TC_MME_PUE_01() runs on TestAdapter {
            
            // Local variables
            var Auth_Session_State_AVP        v_noStateMaintained := md_auth_Session_State_noStateMaintained;
            
            // Preamble
            
            // Test Body
            // Clause 'when'
            action("initiate purge UE request");
            
            // Clause 'then'
            tc_ac.start;
            alt {
                []  HSS_S6a.receive ( m_mmePurgeUeRequest ( mdw_PUER_TCs ( vc_sessionId, mdw_purBodyAvps (
                                v_noStateMaintained,                    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                          // containing an Origin-Host AVP
                                vc_originRealm,                         // containing an Origin-Realm AVP
                                ?,                                      // containing an Destination_Realm_AVP
                                ?,                                      // containing an User_Name_AVP
                                * )))) {                                // containing an PUR_Flags_AVP
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                []  tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of alt
                        
            // Postamble
            
@@ -583,13 +604,33 @@ module DiameterS6a_MME_TCFunctions {
        function f_TC_MME_PUE_02() runs on TestAdapter {
            
            // Local variables
            var Auth_Session_State_AVP        v_noStateMaintained := md_auth_Session_State_noStateMaintained;
            
            // Preamble
            
            // Test Body
            // Clause 'when'
            action("initiate purge UE request in MME");
            
            // Clause 'then'
            tc_ac.start;
            alt {
                []  HSS_S6a.receive ( m_mmePurgeUeRequest ( mdw_PUER_TCs ( vc_sessionId, mdw_purBodyAvps (
                                v_noStateMaintained,                    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                          // containing an Origin-Host AVP
                                vc_originRealm,                         // containing an Origin-Realm AVP
                                ?,                                      // containing an Destination_Realm_AVP
                                ?,                                      // containing an User_Name_AVP
                                mdw_pURFlags(bit2int('01'B))            // containing an PUR_Flags_AVP
                                )))) {                                
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                []  tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of alt
                        
            // Postamble
            
@@ -598,13 +639,33 @@ module DiameterS6a_MME_TCFunctions {
        function f_TC_MME_PUE_03() runs on TestAdapter {
            
            // Local variables
            var Auth_Session_State_AVP        v_noStateMaintained := md_auth_Session_State_noStateMaintained;
            
            // Preamble
            
            // Test Body
            // Clause 'when'
            action("initiate purge UE request in MME and SGSN");
            
            // Clause 'then'
            tc_ac.start;
            alt {
                []  HSS_S6a.receive ( m_mmePurgeUeRequest ( mdw_PUER_TCs ( vc_sessionId, mdw_purBodyAvps (
                                v_noStateMaintained,                    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                          // containing an Origin-Host AVP
                                vc_originRealm,                         // containing an Origin-Realm AVP
                                ?,                                      // containing an Destination_Realm_AVP
                                ?,                                      // containing an User_Name_AVP
                                mdw_pURFlags(bit2int('11'B))            // containing an PUR_Flags_AVP
                                )))) {                                
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                []  tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of alt

            // Postamble
            
@@ -613,13 +674,50 @@ module DiameterS6a_MME_TCFunctions {
        function f_TC_MME_PUE_04() runs on TestAdapter {
            
            // Local variables
            
            var Auth_Session_State_AVP        v_noStateMaintained := md_auth_Session_State_noStateMaintained;
            const bitstring c_partialPurgeFeature := '10000000000000000000000000000'B;
            // Preamble
            action("initiate update location request");
            tc_ac.start;
            alt {
                [] HSS_S6a.receive(
                    mw_hssUpdateLocationRequest(
                        mdw_ULR_TCs( 
                            vc_sessionId,                                   // containing a Session-ID AVP
                            mw_S6a_ULR_Body_dummy))) {
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                [] tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            }; // End of 'altstep' statement

            // Test Body
            // Clause 'when'
            HSS_S6a.send(m_hssUpdateLocationAnswer(m_S6a_ULA(m_S6a_ULA_Body
                ( {m_supportedFeatures ( m_vendorId(c_vendId3gpp), m_featureListId(0), m_featureList(bit2int(c_partialPurgeFeature)), omit)} )
            )));
            
            // Clause 'then'
            tc_ac.start;
            alt {
                []  HSS_S6a.receive ( m_mmePurgeUeRequest ( mdw_PUER_TCs ( vc_sessionId, mdw_purBodyAvps (
                                v_noStateMaintained,                    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                                vc_originHost,                          // containing an Origin-Host AVP
                                vc_originRealm,                         // containing an Origin-Realm AVP
                                ?,                                      // containing an Destination_Realm_AVP
                                ?,                                      // containing an User_Name_AVP
                                mdw_pURFlags((bit2int('01'B),bit2int('10'B)))            // containing an PUR_Flags_AVP
                                )))) {                                
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    log("*** " & __SCOPE__ & ": PASS: Expected was received. ***");
                }
                []  tc_ac.timeout {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***");
                }
            } // End of alt
            
            // Postamble
            
@@ -1437,9 +1535,7 @@ module DiameterS6a_MME_TCFunctions {
                                v_user_Name,                            // containing a User-Name AVP
                                v_dSR_Flags ))));
            
            
            // Clause 'then'

            tc_ac.start;
            alt {
                []  HSS_S6a.receive ( mw_hssDeleteSubscriberDataAnswer ( mdw_DSA_TCs ( vc_sessionId, mdw_dsaBodyAvps_Result (
+3 −2
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
        type 
            TestAdapter 
    };
    import from LibDiameter_Types_S6a_AVPs all;

    group GlobalSteps {
        
@@ -189,10 +190,10 @@
         * @param p_purMSG
         * @verdict Unchanged
         */
        function f_triggerPurMessage ( template (value) PUR_MSG p_purMSG ) 
        function f_triggerPurMessage ( template (value) PUER_MSG p_purMSG ) 
        runs on TestAdapter {
            MME_S6a.send(
                DIAMETER_MSG : { pUR_MSG := p_purMSG } 
                DIAMETER_MSG : { pUER_MSG := p_purMSG } 
            );
        } // End of function f_triggerPurMessage
        
+123 −30

File changed.

Preview size limit exceeded, changes collapsed.