ItsMapem_TpFunctions.ttcn 109 KB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
                // Test control
                if (not PICS_MAPEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION 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
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                                               mw_mapemInd(
                                                           mw_mapemPdu(
                                                                       mw_mapem(
                                                                                ?
                    )))) -> value v_mapem { 
                        tc_ac.stop;
                        if (f_check_generic_connection_content(v_mapem.msgIn.map_.intersections)) {
                            log("*** " & testcasename() & ": PASS: The lanes identifier are unique. ***");
                            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        } else {
                            log("*** " & testcasename() & ": FAIL: Duplicated lanes identifier. ***");
                            f_selfOrClientSyncAndVerdict(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();
Yann Garcia's avatar
Yann Garcia committed
            group checks_IS_RLT_GEN_MSGF_BV_14 {
                
                function f_check_generic_connection_content(
                                                            in IntersectionGeometryList p_intersections
                                                            ) return boolean {
                    for (var integer v_intersections_idx := 0; v_intersections_idx < lengthof(p_intersections); v_intersections_idx := v_intersections_idx + 1) {
                        for (var integer v_lane_ids_idx := 0; v_lane_ids_idx < lengthof(p_intersections[v_intersections_idx].laneSet); v_lane_ids_idx := v_lane_ids_idx + 1) {
                            var GenericLane v_lane := p_intersections[v_intersections_idx].laneSet[v_lane_ids_idx];
                            if (match(v_lane, mw_roadLane(-, -, -, -, ?)) == false) { // TODO Which fields should be tested?
                                return false;
                            }
                        } // End of 'for' statement
                    } // End of 'for' statement
                    
                    return true;
                } // End of function f_check_generic_connection_content
                
            } // End of group checks_IS_RLT_GEN_MSGF_BV_14
            
            /**
             * @desc    TP Function for TC_IS_RLT_GEN_MSGF_BV_15
             */
            function f_IS_RLT_GEN_MSGF_BV_15 () runs on ItsMapemSpatem {
                
Yann Garcia's avatar
Yann Garcia committed
                // Local variables
                var MapemInd v_mapem;
                
                // Test control
                if (not PICS_MAPEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION 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
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                                               mw_mapemInd(
                                                           mw_mapemPdu(
                                                                       mw_mapem(
                                                                                ?
                    )))) -> value v_mapem { 
                        tc_ac.stop;
                        if (f_check_generic_lane_content(v_mapem.msgIn.map_.intersections)) {
                            log("*** " & testcasename() & ": PASS: The lanes identifier are unique. ***");
                            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        } else {
                            log("*** " & testcasename() & ": FAIL: Duplicated lanes identifier. ***");
                            f_selfOrClientSyncAndVerdict(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();
Yann Garcia's avatar
Yann Garcia committed
            group checks_IS_RLT_GEN_MSGF_BV_15 {
                
                function f_check_generic_lane_content(
                                                      in IntersectionGeometryList p_intersections
                                                      ) return boolean {
                    for (var integer v_intersections_idx := 0; v_intersections_idx < lengthof(p_intersections); v_intersections_idx := v_intersections_idx + 1) {
                        for (var integer v_lane_ids_idx := 0; v_lane_ids_idx < lengthof(p_intersections[v_intersections_idx].laneSet); v_lane_ids_idx := v_lane_ids_idx + 1) {
                            var GenericLane v_lane := p_intersections[v_intersections_idx].laneSet[v_lane_ids_idx];
                            if (match(v_lane, mw_roadLane(-, -, -, -, ?)) == false) { // TODO Which fields should be tested?
                                return false;
                            }
                        } // End of 'for' statement
                    } // End of 'for' statement
                    
                    return true;
                } // End of function f_check_generic_lane_content
                
            } // End of group checks_IS_RLT_GEN_MSGF_BV_15
            
            /**
             * @desc    TP Function for TC_IS_RLT_GEN_MSGF_BV_16
             */
            function f_IS_RLT_GEN_MSGF_BV_16 () runs on ItsMapemSpatem {
                
Yann Garcia's avatar
Yann Garcia committed
                // Local variables
                var MapemInd v_mapem;
                
                // Test control
                if (not PICS_MAPEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION 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
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                                               mw_mapemInd(
                                                           mw_mapemPdu(
                                                                       mw_mapem(
                                                                                ?
                    )))) -> value v_mapem { 
                        tc_ac.stop;
                        if (f_check_generic_lane_approach(v_mapem.msgIn.map_.intersections)) {
                            log("*** " & testcasename() & ": PASS: The lanes identifier are unique. ***");
                            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        } else {
                            log("*** " & testcasename() & ": FAIL: Duplicated lanes identifier. ***");
                            f_selfOrClientSyncAndVerdict(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();
Yann Garcia's avatar
Yann Garcia committed
            group checks_IS_RLT_GEN_MSGF_BV_16 {
                
                function f_check_generic_lane_approach(
                                                       in IntersectionGeometryList p_intersections
                                                       ) return boolean {
                    for (var integer v_intersections_idx := 0; v_intersections_idx < lengthof(p_intersections); v_intersections_idx := v_intersections_idx + 1) {
                        for (var integer v_lane_ids_idx := 0; v_lane_ids_idx < lengthof(p_intersections[v_intersections_idx].laneSet); v_lane_ids_idx := v_lane_ids_idx + 1) {
                            var GenericLane v_lane := p_intersections[v_intersections_idx].laneSet[v_lane_ids_idx];
                            if (match(v_lane, mw_roadLane(-, -, 4, 5, ?)) == false) { // TODO Use PIXIT?
                                return false;
                            }
                        } // End of 'for' statement
                    } // End of 'for' statement
                    
                    return true;
                } // End of function f_check_generic_lane_approach
                
            } // End of group checks_IS_RLT_GEN_MSGF_BV_16
            
            /**
             * @desc    TP Function for TC_IS_RLT_GEN_MSGF_BV_17
             */
            function f_IS_RLT_GEN_MSGF_BV_17 () runs on ItsMapemSpatem {
                
Yann Garcia's avatar
Yann Garcia committed
                // Local variables
                var MapemInd v_mapem;
                
                // Test control
                if (not PICS_MAPEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION 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
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent, PX_INTERSECTION_ID));
                
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                                               mw_mapemInd(
                                                           mw_mapemPdu(
                                                                       mw_mapem(
                                                                                ?
                    )))) -> value v_mapem { 
                        tc_ac.stop;
                        if (f_check_generic_lane_approach(v_mapem.msgIn.map_.intersections)) {
                            log("*** " & testcasename() & ": PASS: The lanes identifier are unique. ***");
                            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        } else {
                            log("*** " & testcasename() & ": FAIL: Duplicated lanes identifier. ***");
                            f_selfOrClientSyncAndVerdict(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();
garciay's avatar
garciay committed
        group mapeEventGeneration { 
            /**
             * @desc    TP Function for TC_IS_RLT_EVGN_BV_01
             */
            function f_IS_RLT_EVGN_BV_01 () runs on ItsMapemSpatem {
                
                // Local variables
                
                // Test control
garciay's avatar
garciay committed
                if (not PICS_MAPEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_mapemInd(
                            mw_mapemPdu(
Yann Garcia's avatar
Yann Garcia committed
                                mw_mapem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received MAPEM. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_mapemInd(
                            mw_mapemPdu(
                                mw_defaultMapem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Received a MAPEM with incorrect information. ***");
                        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_EVGN_BV_01
            
            /**
             * @desc    TP Function for TC_IS_RLT_EVGN_BV_02
             */
            function f_IS_RLT_EVGN_BV_02 () runs on ItsMapemSpatem {
                
                // Local variables
                var MapemInd v_mapem;
                
                // Test control
garciay's avatar
garciay committed
                if (not PICS_MAPEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
                f_awaitMapeMessage(
                    mw_mapemInd(
                        mw_mapemPdu(
                            mw_defaultMapem
                    )),
                    v_mapem
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(v_mapem) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: The same MAPEM was received. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] mapemSpatemPort.receive(
                        mw_mapemInd(
                            mw_mapemPdu(
Yann Garcia's avatar
Yann Garcia committed
                                mw_mapem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received a new MAPEM. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_mapemInd(
                            mw_mapemPdu(
                                mw_defaultMapem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Received a MAPEM with incorrect information. ***");
                        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_EVGN_BV_02
            
garciay's avatar
garciay committed
            /**
             * @desc    TP Function for TC_IS_RLT_GEN_FRAG_BV_01
garciay's avatar
garciay committed
             */
            function f_IS_RLT_GEN_FRAG_BV_01 () runs on ItsMapemSpatem {
                
Yann Garcia's avatar
Yann Garcia committed
                // Local variables
                var MapemInd v_mapem;
                
                // Test control
                if (not PICS_MAPEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
                f_prInitialState();
                f_awaitMapeMessage(
                                   mw_mapemInd(
                                               mw_mapemPdu(
                                                           mw_mapem
                    )),
                    v_mapem
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                                               mw_mapemInd(
                                                           mw_mapemPdu(
                                                                       mw_mapem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received MAPEM without the Layer ID. ***");
                        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_FRAG_BV_01
            
            /**
             * @desc    TP Function for TC_IS_RLT_GEN_FRAG_BV_02
             */
            function f_IS_RLT_GEN_FRAG_BV_02 () runs on ItsMapemSpatem {
garciay's avatar
garciay committed
                
                // Local variables
                var MapemInd v_mapem;
Yann Garcia's avatar
Yann Garcia committed
                var boolean v_firstFragmentReceived := false;
garciay's avatar
garciay committed
                
                // Test control
garciay's avatar
garciay committed
                if (not PICS_MAPEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION required for executing the TC ***");
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
                f_prInitialState();
                f_awaitMapeMessage(
                    mw_mapemInd(
                        mw_mapemPdu(
                            mw_defaultMapem
                    )),
                    v_mapem
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(mapemNewContentWithFragmentation));
                tc_ac.start;
                alt {
Yann Garcia's avatar
Yann Garcia committed
                    [not v_firstFragmentReceived] mapemSpatemPort.receive(
garciay's avatar
garciay committed
                        mw_mapemInd(
                            mw_mapemPdu(
                                mw_mapemLayerType
                    ))) -> value v_mapem { 
                        log("*** " & testcasename() & ": INFO: Successfully received the first fragment of MAPEM. ***");
Yann Garcia's avatar
Yann Garcia committed
                        v_firstFragmentReceived := true;
garciay's avatar
garciay committed
                        repeat;
                    }
Yann Garcia's avatar
Yann Garcia committed
                    [v_firstFragmentReceived] mapemSpatemPort.receive(
garciay's avatar
garciay committed
                        mw_mapemInd(
                            mw_mapemPdu(
                                mw_mapemLayerType(
Yann Garcia's avatar
Yann Garcia committed
                                                  -, -,
garciay's avatar
garciay committed
                                                  v_mapem.msgIn.map_.layerID + 1
                                )
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received the last fragment of MAPEM. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_mapemInd(
                            mw_mapemPdu(
                                mw_defaultMapem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Received a MAPEM with incorrect information. ***");
                        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_FRAG_BV_02
garciay's avatar
garciay committed
            
garciay's avatar
garciay committed
        } // End of group mapeEventGeneration
             * @desc    TP Function for TC_IS_RLT_GEN_COM_BV_01
            function f_IS_RLT_GEN_COM_BV_01 () runs on ItsMapemSpatem {
                var boolean v_tlmServiceStarted := false;
garciay's avatar
garciay committed
                if (not PICS_SPATEM_GENERATION or not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION and PICS_SPATEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                tc_ac.start;
                alt {
                    [v_tlmServiceStarted == false] mapemSpatemPort.receive(
Yann Garcia's avatar
Yann Garcia committed
                                mw_mapem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": INFO: Successfully received well-formed MAPEM. ***");
                        f_utTriggerEvent(m_utTriggerEvent(startTLMService));
                        v_tlmServiceStarted := true;
                        tc_ac.start;
                        repeat;
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_spatemWellFormatted
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received well-formed MAPEM & SPATEM. ***");
                        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_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_RLT_GEN_COM_BV_01
             * @desc    TP Function for TC_IS_RLT_GEN_COM_BV_02
Yann Garcia's avatar
Yann Garcia committed
//            function f_IS_RLT_GEN_COM_BV_02 () runs on ItsMapemSpatem {
//                
//                // TODO
//                
//            } // End of function f_IS_RLT_GEN_COM_BV_02
            
            /**
             * @desc    TP Function for TC_IS_RLT_GEN_COM_BV_03
             */
            function f_IS_RLT_GEN_COM_BV_03 () runs on ItsMapemSpatem {
Yann Garcia's avatar
Yann Garcia committed
            } // End of function f_IS_RLT_GEN_COM_BV_03
Yann Garcia's avatar
Yann Garcia committed
             * @desc    TP Function for TC_IS_RLT_GEN_COM_BV_04
Yann Garcia's avatar
Yann Garcia committed
            function f_IS_RLT_GEN_COM_BV_04 () runs on ItsMapemSpatem {
                
                // Local variables
                const UInt16 c_gnNhBtpBPort := 2003;
                
garciay's avatar
garciay committed
                // Test control
garciay's avatar
garciay committed
                if (not PICS_MAPEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION required for executing the TC ***");
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_mapemIndWithBtpParameters(
                           mw_mapemPdu, 
                           c_gnNhBtpBPort,
                           0
                    )) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
                        log("*** " & testcasename() & ": PASS: Expected MAPEM encapsultated in BTP packet with port value 2003 received. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(mw_mapemInd(mw_mapemPdu(mw_defaultMapem))) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
                        log("*** " & testcasename() & ": FAIL: Expected MAPEM received, but not addressed to the correct destination port. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);  
                    }                    
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_poDefault();
                f_cfDown();
                
Yann Garcia's avatar
Yann Garcia committed
            } // End of function f_IS_RLT_GEN_COM_BV_04
Yann Garcia's avatar
Yann Garcia committed
             * @desc    TP Function for TC_IS_RLT_GEN_COM_BV_05
Yann Garcia's avatar
Yann Garcia committed
            function f_IS_RLT_GEN_COM_BV_05 () runs on ItsMapemSpatem {
Yann Garcia's avatar
Yann Garcia committed
                var MapemInd v_mapem;
garciay's avatar
garciay committed
                if (not PICS_MAPEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_MAPEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_awaitMapeMessage(
                                   mw_mapemInd(
                                               mw_mapemPdu(
                                                           mw_defaultMapem
                                               )),
                                   v_mapem
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_mapemIndWithGnParameters(
                            mw_mapemPdu(
Yann Garcia's avatar
Yann Garcia committed
                                mw_defaultMapem
garciay's avatar
garciay committed
                        log("*** " & testcasename() & ": PASS: Expected MAPEM encapsulated in GBC packet 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();
                
Yann Garcia's avatar
Yann Garcia committed
            } // End of function f_IS_RLT_GEN_COM_BV_05
            
        } // End of group mapeCommunication 
        
    } // End of group mapeMessageDissemination
    
    group mapeMessageProcessing {
            
        /**
         * @desc    TP Function for TC_IS_RLT_GEN_SEC_BV_01
         */
        function f_IS_RLT_GEN_SEC_BV_01 () runs on ItsMapemSpatem {
           
Yann Garcia's avatar
Yann Garcia committed
            // 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 ***");
Yann Garcia's avatar
Yann Garcia committed
                setverdict(inconc);
                stop;
            }
            
            // Test component configuration
            f_cfUp();
                
            // Preamble
            f_prInitialState();
            f_awaitMapeMessage(
                               mw_mapemInd(
                                           mw_mapemPdu(
                                                       mw_defaultMapem
                                           )),
                               v_mapem
            );
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            tc_ac.start;
            alt {
                [] mapemSpatemPort.receive(
                                           mw_mapemIndWithSecurityParameters(
                                                                             mw_mapemPdu(
                                                                                         mw_mapem
                                                                                         ),
                                                                             -, 
                                                                             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_SEC_BV_01
            
        /**
         * @desc    TP Function for TC_IS_RLT_GEN_SEC_BV_02
         */
        function f_IS_RLT_GEN_SEC_BV_02 () runs on ItsMapemSpatem {
           
Yann Garcia's avatar
Yann Garcia committed
            // 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 ***");
Yann Garcia's avatar
Yann Garcia committed
                setverdict(inconc);
                stop;
            }
            
            // Test component configuration
            f_cfUp();
                
            // Preamble
            f_prInitialState();
            f_awaitMapeMessage(
                               mw_mapemInd(
                                           mw_mapemPdu(
                                                       mw_defaultMapem
                                           )),
                               v_mapem
            );
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            tc_ac.start;
            alt {
                [] mapemSpatemPort.receive(
                                           mw_mapemIndWithSecurityParameters(
                                                                             mw_mapemPdu(
                                                                                         mw_mapem
                                                                                         ),
                                                                             -, 
                                                                             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_SEC_BV_02
            
        /**
         * @desc    TP Function for TC_IS_RLT_GEN_SSP_BV_01
         */
        function f_IS_RLT_GEN_SSP_BV_01 () runs on ItsMapemSpatem {
           
Yann Garcia's avatar
Yann Garcia committed
            // 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 ***");
Yann Garcia's avatar
Yann Garcia committed
                setverdict(inconc);
                stop;
            }
            
            // Test component configuration
            f_cfUp();
                
            // Preamble
            f_prInitialState("CERT_SPAT_SSP_NONE");
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
            
Yann Garcia's avatar
Yann Garcia committed
            tc_ac.start;
            alt {
                [] mapemSpatemPort.receive(
                                           mw_mapemIndWithSecurityParameters(
                                                                             mw_mapemPdu(
                                                                                         mw_defaultMapem
                                                                                         ),
                                                                             oct2bit('010000'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_01
            
        /**
         * @desc    TP Function for TC_IS_RLT_GEN_SSP_BV_02
         */
        function f_IS_RLT_GEN_SSP_BV_02 () runs on ItsMapemSpatem {
           
Yann Garcia's avatar
Yann Garcia committed
            // 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 ***");
Yann Garcia's avatar
Yann Garcia committed
                setverdict(inconc);
                stop;
            }
            
            // Test component configuration
            f_cfUp();
                
            // Preamble
            f_prInitialState("CERT_MAP_SSP_1");
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            f_utTriggerEvent(m_utTriggerEvent(mapemNewContent));
            
Yann Garcia's avatar
Yann Garcia committed
            tc_ac.start;
            alt {
                [] mapemSpatemPort.receive(
                                           mw_mapemIndWithSecurityParameters(
                                                                             mw_mapemPdu(
                                                                                         mw_defaultMapem
                                                                                         ),
                                                                             oct2bit('010000'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_02
            
        /**
         * @desc    TP Function for TC_IS_RLT_GEN_SSP_BO_03
         */
        function f_IS_RLT_GEN_SSP_BO_03 () runs on ItsMapemSpatem {
           
Yann Garcia's avatar
Yann Garcia committed
            // 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 ***");
Yann Garcia's avatar
Yann Garcia committed
                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));
            
Yann Garcia's avatar
Yann Garcia committed
            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. ***");