ItsMapem_TpFunctions.ttcn 110 KB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                }
            }
            
            // Postamble
            f_poDefault();
            f_cfDown();
           
        } // End of function f_IS_RLT_GEN_SSP_BO_03
            
        /**
         * @desc    TP Function for TC_IS_RLT_GEN_SSP_BV_04
         */
        function f_IS_RLT_GEN_SSP_BV_04 () runs on ItsMapemSpatem {
           
            // Local variables
            var MapemInd v_mapem;
            
            // Test control
            if (not PICS_MAPEM_GENERATION or not PICS_IS_IUT_SECURED) {
                log("*** " & testcasename() & ": PICS_MAPEM_GENERATION and PICS_IS_IUT_SECURED required for executing the TC ***");
                setverdict(inconc);
                stop;
            }
            
            // Test component configuration
            f_cfUp();
                
            // Preamble
            f_prInitialState("CERT_MAP_SSP_2");
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
            
            tc_ac.start;
            alt {
                [] mapemSpatemPort.receive(
                                           mw_mapemIndWithSecurityParameters(
                                                                             mw_mapemPdu(
                                                                                         mw_defaultMapem
                                                                                         ),
                                                                             oct2bit('018000'O), 
                                                                             c_its_aid_MAP
                )) { 
                    tc_ac.stop;
                    log("*** " & testcasename() & ": PASS: Expected secured MAPEM received. ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                }
                [] tc_ac.timeout {
                    log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                }
            }
            
            // Postamble
            f_poDefault();
            f_cfDown();
           
        } // End of function f_IS_RLT_GEN_SSP_BV_04
            
        /**
         * @desc    TP Function for TC_IS_RLT_GEN_SSP_BO_05
         */
        function f_IS_RLT_GEN_SSP_BO_05 () runs on ItsMapemSpatem {
           
            // Local variables
            var MapemInd v_mapem;
            
            // Test control
            if (not PICS_MAPEM_GENERATION or not PICS_IS_IUT_SECURED) {
                log("*** " & testcasename() & ": PICS_MAPEM_GENERATION and PICS_IS_IUT_SECURED required for executing the TC ***");
                setverdict(inconc);
                stop;
            }
            
            // Test component configuration
            f_cfUp();
                
            // Preamble
            f_prInitialState("CERT_MAP_SSP_NONE");
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
            
            tc_noac.start;
            alt {
                [] mapemSpatemPort.receive(
                                           mw_mapemIndWithSecurityParameters(
                                                                             mw_mapemPdu(
                                                                                         mw_defaultMapem
                                                                                         ),
                                                                             oct2bit('010000'O), 
                                                                             c_its_aid_MAP
                )) { 
                    tc_noac.stop;
                    log("*** " & testcasename() & ": FAIL: Unexpected secured MAPEM received. ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                }
                [] tc_noac.timeout {
                    log("*** " & testcasename() & ": PASS: No MAP message received. ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                }
            }
            
            // Postamble
            f_poDefault();
            f_cfDown();
           
        } // End of function f_IS_RLT_GEN_SSP_BO_05
            
        /**
         * @desc    TP Function for TC_IS_RLT_GEN_RATE_BV_01
         */
        function f_IS_RLT_GEN_RATE_BV_01 () runs on ItsMapemSpatem {
           
            // Local variables
            var MapemInd v_mapem;
            timer t_minTransInterval := PICS_T_GENMAPEMMIN * 0.90;
            timer t_maxTransInterval := PICS_T_GENMAPEMMAX * 1.10;
            
            // Test control
            if (not PICS_MAPEM_GENERATION or not PICS_MAPEM_TRANSMISSION_RATE) {
                log("*** " & testcasename() & ": PICS_MAPEM_GENERATION and PICS_MAPEM_TRANSMISSION_RATE required for executing the TC ***");
                setverdict(inconc);
                stop;
            }
            
            // Test component configuration
            f_cfUp();
                
            // Preamble
            f_prInitialState();
            f_awaitMapeMessage(
                mw_mapemInd(
                    mw_mapemPdu(
                        mw_defaultMapem
                )),
                v_mapem
            );
            t_minTransInterval.start;
            t_maxTransInterval.start;
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            tc_ac.start;
            alt {
                [] mapemSpatemPort.receive(
                    mw_mapemInd(
                        mw_mapemPdu
                )) { 
                    tc_ac.stop;
                    
                    if (t_minTransInterval.running) {
                        log("*** " & testcasename() & ": PASS: Successfully received MAPEM PDU header. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    } else {
                        log("*** " & testcasename() & ": FAIL: MAPE message was received before t_minTransInterval expiry. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                }
                [] t_minTransInterval.timeout {
                    repeat;
                }
                [] t_maxTransInterval.timeout {
                    log("*** " & testcasename() & ": FAIL: MAPE message was not received within the t_minTransInterval/t_maxTransInterval expiration ***");
                    f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_error);
                }
                [] tc_ac.timeout {
                    log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                }
            }
            
            // Postamble
            f_poDefault();
            f_cfDown();
            
        } // End of function f_IS_RLT_GEN_RATE_BV_01
         * @desc    TP Function for TC_IS_RLT_GEN_RCV_BV_03
        function f_IS_RLT_GEN_RCV_BV_03 () runs on ItsMapemSpatem {
            var integer    i;
            
garciay's avatar
garciay committed
            if (not PICS_MAPEM_RECEPTION) {
                log("*** " & testcasename() & ": PICS_MAPEM_RECEPTION required for executing the TC ***");
            // Test component configuration
            f_cfUp();
garciay's avatar
garciay committed
            f_prInitialState();
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
Yann Garcia's avatar
Yann Garcia committed
            v_mapemReq := valueof(
                                  m_mapemReq(
                                             m_mapemPdu(
                                                        m_mapem(
                                                                5,
                                                                {
                                                                  m_intersectionGeometry(
                                                                                         m_intersectionReferenceID(9),
                                                                                         1,
                                                                                         m_position3D(
                                                                                                      367485365,
                                                                                                      -45560691
                                                                                                      ),
                                                                                         {
                                                                                           m_laneList(
                                                                                                      1,
                                                                                                      { directionalUse := '10'B, sharedWith := '0000000000'B, laneType := { vehicle := '00000000'B }, regional := omit },
                                                                                                      {
                                                                                                        nodes := {
                                                                                                                   { delta := { node_XY6 := { x := 83, y := -124 } }, attributes := omit },
                                                                                                                   { delta := { node_XY6 := { x := 93, y := -122 } }, attributes := omit }
                                                                                                                 }
                                                                                                      },
                                                                                                      -,
                                                                                                      1
                                                                                                      )
                                                                                         }
                                                                                         )
                                                                }
                                                                ))));
            f_sleep(PX_TAC);
            for (i := 0; i < lengthof(vc_utMapemEvents) and not match (v_mapemReq.msgOut , vc_utMapemEvents[i].mapeMsg); i := i + 1) {
                // empty on purpose 
            }
            if (i < lengthof(vc_utMapemEvents) ) {
                log("*** " & testcasename() & ": PASS: MAPEM was transmitted to upper layer***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            } else {
                log("*** " & testcasename() & ": FAIL: MAPEM was not transmitted to upper layer***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
            }
        } // End of function f_IS_RLT_GEN_RCV_BV_03
        
        /**
         * @desc    TP Function for TC_IS_RLT_RCV_SEC_BV_01
         */
        function f_IS_RLT_RCV_SEC_BV_01 () runs on ItsMapemSpatem {
            
            // Local variables
            var MapemReq   v_mapemReq;
            var integer    i;
                
            if (not PICS_MAPEM_RECEPTION or not PICS_IS_IUT_SECURED) {
                log("*** " & testcasename() & ": PICS_MAPEM_RECEPTION and PICS_IS_IUT_SECURED required for executing the TC ***");
                setverdict(inconc);
                stop;
            }
                
            // Test component configuration
            f_cfUp();
                
            // Preamble
            f_prInitialState();
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            v_mapemReq := valueof(
                                  m_mapemReq(
                                             m_mapemPdu(
                                                        m_mapem(
                                                                5
                                                                ))));
            mapemSpatemPort.send(v_mapemReq) ;
            
            f_sleep(PX_TAC);
            for (i := 0; i < lengthof(vc_utMapemEvents) and not match (v_mapemReq.msgOut , vc_utMapemEvents[i].mapeMsg); i := i + 1) {
                // empty on purpose 
            }
            if (i < lengthof(vc_utMapemEvents) ) {
                log("*** " & testcasename() & ": PASS: MAPEM was transmitted to upper layer***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            } else {
                log("*** " & testcasename() & ": FAIL: MAPEM was not transmitted to upper layer***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
            }
                
            // Postamble
            f_poDefault();
            f_cfDown();
            
        } // End of function f_IS_RLT_RCV_SEC_BV_01
        
        /**
         * @desc    TP Function for TC_IS_RLT_RCV_SEC_BO_02
         */
        function f_IS_RLT_RCV_SEC_BO_02 () runs on ItsMapemSpatem {
            
            // Local variables
            var MapemReq   v_mapemReq;
            var integer    i;
                
            if (not PICS_MAPEM_RECEPTION or not PICS_IS_IUT_SECURED) {
                log("*** " & testcasename() & ": PICS_MAPEM_RECEPTION and PICS_IS_IUT_SECURED required for executing the TC ***");
                setverdict(inconc);
                stop;
            }
                
            // Test component configuration
            f_cfUp("RLT_RCV_SEC_BO_02");
                
            // Preamble
            f_prInitialState();
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            v_mapemReq := valueof(
                                  m_mapemReq(
                                             m_mapemPdu(
                                                        m_mapem(
                                                                5
                                                                ))));
            mapemSpatemPort.send(v_mapemReq) ;
                
            f_sleep(PX_TAC);
            if (0 == lengthof(vc_utMapemEvents) ) {
                log("*** " & testcasename() & ": PASS: MAPEM was not transmitted to upper layer***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            } else {
                log("*** " & testcasename() & ": FAIL: MAPEM was transmitted to upper layer***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
            }
            
            // Postamble
            f_poDefault();
            f_cfDown();
            
        } // End of function f_IS_RLT_RCV_SEC_BO_02
            
        /**
         * @desc    TP Function for TC_IS_RLT_RCV_SEC_BO_03
         */
        function f_IS_RLT_RCV_SEC_BO_03 () runs on ItsMapemSpatem {
            
            // Local variables
            var MapemReq   v_mapemReq;
            var integer    i;
                
            if (not PICS_MAPEM_RECEPTION or not PICS_IS_IUT_SECURED) {
                log("*** " & testcasename() & ": PICS_MAPEM_RECEPTION and PICS_IS_IUT_SECURED required for executing the TC ***");
                setverdict(inconc);
                stop;
            }
                
            // Test component configuration
            f_cfUp("RLT_RCV_SEC_BO_03");
                
            // Preamble
            f_prInitialState();
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            v_mapemReq := valueof(
                                  m_mapemReq(
                                             m_mapemPdu(
                                                        m_mapem(
                                                                5
                                                                ))));
            mapemSpatemPort.send(v_mapemReq) ;
                
            f_sleep(PX_TAC);
            if (0 == lengthof(vc_utMapemEvents) ) {
                log("*** " & testcasename() & ": PASS: MAPEM was not transmitted to upper layer***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            } else {
                log("*** " & testcasename() & ": FAIL: MAPEM was transmitted to upper layer***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
            }
            
            // Postamble
            f_poDefault();
            f_cfDown();
           
        } // End of function f_IS_RLT_RCV_SEC_BO_03
            
        /**
         * @desc    TP Function for TC_IS_RLT_RCV_SEC_BO_04
         */
        function f_IS_RLT_RCV_SEC_BO_04 () runs on ItsMapemSpatem {
            
            // Local variables
            var MapemReq   v_mapemReq;
            var integer    i;
                
            if (not PICS_MAPEM_RECEPTION or not PICS_IS_IUT_SECURED) {
                log("*** " & testcasename() & ": PICS_MAPEM_RECEPTION and PICS_IS_IUT_SECURED required for executing the TC ***");
                setverdict(inconc);
                stop;
            }
                
            // Test component configuration
            f_cfUp("RLT_RCV_SEC_BO_04");
                
            // Preamble
            f_prInitialState();
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            v_mapemReq := valueof(
                                  m_mapemReq(
                                             m_mapemPdu(
                                                        m_mapem(
                                                                5
                                                                ))));
            mapemSpatemPort.send(v_mapemReq) ;
                
            f_sleep(PX_TAC);
            if (0 == lengthof(vc_utMapemEvents) ) {
                log("*** " & testcasename() & ": PASS: MAPEM was not transmitted to upper layer***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            } else {
                log("*** " & testcasename() & ": FAIL: MAPEM was transmitted to upper layer***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
            }
            
            // Postamble
            f_poDefault();
            f_cfDown();
            
        } // End of function f_IS_RLT_RCV_SEC_BO_04
Yann Garcia's avatar
Yann Garcia committed
} // End of module ItsMapem_TpFunctions