Commit 45a35945 authored by garciay's avatar garciay
Browse files

Create base files for test cases implementation

parent a446ff8f
Loading
Loading
Loading
Loading
+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
+7 −1
Original line number Diff line number Diff line
@@ -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;

+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
+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
+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