Commit dac1caf7 authored by Yann Garcia's avatar Yann Garcia
Browse files

Adding TC_MIM_MSGF_BV_01

parent 8a849417
Loading
Loading
Loading
Loading
+82 −11
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ module ItsAvm_TestCases {

        group mimMessageDissemination {

            group mimMessageFormat {
            group mimMessageGeneration {

                /**
                * @desc Check that MIM messages are generated upon activation of the AVM entity
@@ -56,7 +56,7 @@ module ItsAvm_TestCases {
                */
                testcase TC_MIM_DISS_BV_01() runs on ItsAvm system ItsAvmSystem {

                    f_MIM_DISS_BV_01();
                    f_TC_MIM_DISS_BV_01();

                } // End of TC_MIM_DISS_BV_01

@@ -87,7 +87,7 @@ module ItsAvm_TestCases {
                */
                testcase TC_MIM_DISS_BV_02() runs on ItsAvm system ItsAvmSystem {

                    f_MIM_DISS_BV_02();
                    f_TC_MIM_DISS_BV_02();

                } // End of TC_MIM_DISS_BV_02

@@ -118,7 +118,7 @@ module ItsAvm_TestCases {
                */
                testcase TC_MIM_DISS_BV_03() runs on ItsAvm system ItsAvmSystem {

                    f_MIM_DISS_BV_03();
                    f_TC_MIM_DISS_BV_03();

                } // End of TC_MIM_DISS_BV_03

@@ -146,7 +146,7 @@ module ItsAvm_TestCases {
                */
                testcase TC_MIM_DISS_BV_04() runs on ItsAvm system ItsAvmSystem {

                    f_MIM_DISS_BV_04();
                    f_TC_MIM_DISS_BV_04();

                } // End of TC_MIM_DISS_BV_04

@@ -177,7 +177,7 @@ module ItsAvm_TestCases {
                 */
                testcase TC_MIM_DISS_TI_01() runs on ItsAvm system ItsAvmSystem {

                    f_MIM_DISS_TI_01_02();
                    f_TC_MIM_DISS_TI_01_02();

                } // End of TC_MIM_DISS_TI_01

@@ -210,7 +210,7 @@ module ItsAvm_TestCases {
                 */
                testcase TC_MIM_DISS_TI_02() runs on ItsAvm system ItsAvmSystem {

                    f_MIM_DISS_TI_01_02();
                    f_TC_MIM_DISS_TI_01_02();

                } // End of TC_MIM_DISS_TI_01

@@ -241,10 +241,81 @@ module ItsAvm_TestCases {
                */
                testcase TC_MIM_DISS_BV_0x() runs on ItsAvm system ItsAvmSystem {

                    f_MIM_DISS_BV_0x();
                    f_TC_MIM_DISS_BV_0x();

                } // End of TC_MIM_DISS_BV_0x

            } // End of group mimMessageGeneration

            group mimMessageFormat {

                /**
                 * @desc Check that the rollingCounter is initialized with 0 for the first generation request
                 * <pre>
                 * Pics Selection: PICS_MIM_GENERATION
                 * Initial conditions:
                 *     with {
                 *         the IUT being in the "initial state"
                 *         and no MIM has been sent yet
                 *     }
                 * Expected behaviour:
                 *     ensure that {
                 *         when {
                 *             a MIM is generated for the first time
                 *         }
                 *         then {
                 *             MIM is generated
                 *                 containing e2eProtection
                 *                     containing rollingCounter 
                 *                         indicating value 0
                 *         }
                 *     }
                 * </pre>
                 *
                 * @see       ETSI TS 104 202-2 v2.2.1 TP/MIM/MSGF/BV-01
                 * @reference ETSI TS 103 882 v2.2.1, Annex B
                 */
                testcase TC_MIM_MSGF_BV_01() runs on ItsAvm system ItsAvmSystem {

                    f_TC_MIM_MSGF_BV_01();

                } // End of TC_MIM_MSGF_BV_01

                /**
                 * @desc Check that the rollingConter is incremented by 1 for every subsequent generation request after the first request
                 * <pre>
                 * Pics Selection: PICS_MIM_GENERATION
                 * Initial conditions:
                 *     with {
                 *         AVM entity is active
                 *         MIM has been sent at T_0
                 *         containing e2eProtection
                 *             containing rollingCounter 
                 *                 indicating value R
                 *     }
                 * Expected behaviour:
                 *     ensure that {
                 *         when {
                 *             a MIM generation is requested at T_1
                 *         }
                 *         then {
                 *             MIM is generated
                 *                 containing e2eProtection
                 *                     containing rollingCounter 
                 *                         indicating value R + 1
                 *         }
                 *     }
                 * </pre>
                 *
                 * @see       ETSI TS 104 202-2 v2.2.1 TP/MIM/MSGF/BV-02
                 * @reference ETSI TS 103 882 v2.2.1, Annex B
                 */
                testcase TC_MIM_MSGF_BV_02() runs on ItsAvm system ItsAvmSystem {

                    f_TC_MIM_MSGF_BV_02();

                } // End of TC_MIM_MSGF_BV_02

            } // End of group mimMessageFormat

            group mimLowerLayerParameters {
@@ -274,7 +345,7 @@ module ItsAvm_TestCases {
                */
                testcase TC_MIM_MSD_PAR_BV_01() runs on ItsAvm system ItsAvmSystem {

                    f_MIM_MSD_PAR_BV_01();
                    f_TC_MIM_MSD_PAR_BV_01();

                } // End of TC_MIM_MSD_PAR_BV_01

@@ -303,7 +374,7 @@ module ItsAvm_TestCases {
                */
                testcase TC_MIM_MSD_PAR_BV_02() runs on ItsAvm system ItsAvmSystem {

                    f_MIM_MSD_PAR_BV_02();
                    f_TC_MIM_MSD_PAR_BV_02();

                } // End of TC_MIM_MSD_PAR_BV_02

@@ -335,7 +406,7 @@ module ItsAvm_TestCases {
                */
                testcase TC_MIM_MSD_PAR_BV_03() runs on ItsAvm system ItsAvmSystem {

                    f_MIM_MSD_PAR_BV_03();
                    f_TC_MIM_MSD_PAR_BV_03();

                } // End of TC_MIM_MSD_PAR_BV_03

+2 −0
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@ module ItsAvm_TestControl {

            execute(TC_MIM_DISS_TI_01());
            execute(TC_MIM_DISS_TI_02());

            execute(TC_MIM_MSGF_BV_01());
        }
    
        if (PICS_VO_ROLE) {
+155 −19
Original line number Diff line number Diff line
@@ -90,12 +90,12 @@ module ItsAvm_TpFunctions {

        group mimMessageDissemination {

            group mimMessageFormat {
            group mimMessageGeneration {

                /**
                * @desc    TP Function for TC_MIM_DISS_BV_01
                */
                function f_MIM_DISS_BV_01() runs on ItsAvm {
                function f_TC_MIM_DISS_BV_01() runs on ItsAvm {

                    // Local variables

@@ -132,12 +132,12 @@ module ItsAvm_TpFunctions {
                    f_poDefault();
                    f_cfDown();

                } // End of function f_MIM_DISS_BV_01
                } // End of function f_TC_MIM_DISS_BV_01

                /**
                * @desc    TP Function for TC_MIM_DISS_BV_02
                */
                function f_MIM_DISS_BV_02() runs on ItsAvm {
                function f_TC_MIM_DISS_BV_02() runs on ItsAvm {

                    // Local variables

@@ -185,12 +185,12 @@ module ItsAvm_TpFunctions {
                    f_poDefault();
                    f_cfDown();

                } // End of function f_MIM_DISS_BV_02
                } // End of function f_TC_MIM_DISS_BV_02

                /**
                * @desc    TP Function for TC_MIM_DISS_BV_03
                */
                function f_MIM_DISS_BV_03() runs on ItsAvm {
                function f_TC_MIM_DISS_BV_03() runs on ItsAvm {

                    // Local variables
                    var MimInd v_mimInd;
@@ -239,12 +239,12 @@ module ItsAvm_TpFunctions {
                    f_poDefault();
                    f_cfDown();

                } // End of function f_MIM_DISS_BV_03
                } // End of function f_TC_MIM_DISS_BV_03

                /**
                * @desc    TP Function for TC_MIM_DISS_BV_04
                */
                function f_MIM_DISS_BV_04() runs on ItsAvm {
                function f_TC_MIM_DISS_BV_04() runs on ItsAvm {

                    // Local variables
                    var MimInd  v_mimInd;
@@ -297,12 +297,12 @@ module ItsAvm_TpFunctions {
                    f_poDefault();
                    f_cfDown();

                } // End of function f_MIM_DISS_BV_04
                } // End of function f_TC_MIM_DISS_BV_04

                /**
                 * @desc    TP Function for TC_MIM_DISS_TI_01/TC_MIM_DISS_TI_02
                 */
                function f_MIM_DISS_TI_01_02() runs on ItsAvm {
                function f_TC_MIM_DISS_TI_01_02() runs on ItsAvm {

                    // Local variables
                    timer t_minTransInterval := PICS_T_GENMIMMIN * PX_INC_TIMER_CONTROL_FACTOR;
@@ -397,12 +397,12 @@ module ItsAvm_TpFunctions {
                    f_poDefault();
                    f_cfDown();

                } // End of function f_MIM_DISS_TI_01_02
                } // End of function f_TC_MIM_DISS_TI_01_02

                /**
                * @desc    TP Function for TC_MIM_DISS_BV_0x
                */
                function f_MIM_DISS_BV_0x() runs on ItsAvm {
                function f_TC_MIM_DISS_BV_0x() runs on ItsAvm {

                    // Local variables
                    var MimInd v_mimInd;
@@ -447,7 +447,143 @@ module ItsAvm_TpFunctions {
                    f_poDefault();
                    f_cfDown();

                } // End of function f_MIM_DISS_BV_0x
                } // End of function f_TC_MIM_DISS_BV_0x

            } // End of group mimMessageGeneration

            group mimMessageFormat {

                /**
                * @desc    TP Function for TC_MIM_MSGF_BV_01
                */
                function f_TC_MIM_MSGF_BV_01() runs on ItsAvm {

                    // Local variables

                    // Test control
                    if (not PICS_RO_ROLE or not PICS_MIM_GENERATION) {
                        log("*** " & testcasename() & ": PICS_RO_ROLE and PICS_MIM_GENERATION required for executing the TC ***");
                        setverdict(inconc);
                        stop;
                    }

                    // Test component configuration
                    f_cfUp();

                    // Test adapter configuration
                    // Preamble
                    f_prInitialState();
                    f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);

                    // Test Body
                    tc_ac.start;
                    alt {
                        [] avmPort.receive(
                                           mw_mimInd(
                                                     mw_mimMsg_e2eProtection(
                                                                             mw_avm_e2e_protection(
                                                                                                   -, 
                                                                                                   0
                                            )))) {
                            tc_ac.stop;
                            log("*** " & testcasename() & ": PASS: Expected MIM  with rollingConter set to 0 ***");
                            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                        }
                        [] tc_ac.timeout {
                            log("*** " & testcasename() & ": INCONC: MIM not received ***");
                            f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                        }
                    }

                    // Postamble
                    f_poDefault();
                    f_cfDown();

                } // End of function f_TC_MIM_MSGF_BV_01

                /**
                 * @desc    TP Function for TC_MIM_MSGF_BV_02
                 */
                function f_TC_MIM_MSGF_BV_02() runs on ItsAvm {

                    // Local variables
                    var integer v_counter := 0;
                    var integer v_expected_rolling_counter := 0;
                    var MimInd v_avmInd;

                    // Test control
                    if (not PICS_RO_ROLE or not PICS_MIM_GENERATION) {
                        log("*** " & testcasename() & ": PICS_RO_ROLE and PICS_MIM_GENERATION required for executing the TC ***");
                        setverdict(inconc);
                        stop;
                    }

                    // Test component configuration
                    f_cfUp();

                    // Test adapter configuration

                    // Preamble
                    f_prInitialState();
                    avmPort.clear;
                    tc_ac.start;
                    alt {
                        [] avmPort.receive(mw_mimInd(mw_mimMsg)) -> value v_avmInd {
                            tc_ac.stop;
                            v_expected_rolling_counter := v_avmInd.msgIn.e2eProtection.rollingCounter + 1;
                            log("*** " & testcasename() & ": INFO: Initial conditions: First MI message received ***");
                            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                        }
                        [] tc_ac.timeout {
                            log("*** " & testcasename() & ": INCONC: Initial conditions: MI message not received ***");
                            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout);
                            stop;
                        }
                    }

                    // Test Body
                    tc_ac.start;
                    alt {
                        [] avmPort.receive(
                                           mw_mimInd(
                                                     mw_mimMsg_e2eProtection(
                                                                             mw_avm_e2e_protection(
                                                                                                   -, 
                                                                                                   v_expected_rolling_counter
                                            )))) {
                            tc_ac.stop;

                            if (v_counter == PX_REPEATITION_BEFORE_VERDICT) {
                                log("*** " & testcasename() & ": PASS: MIM received with the expected rolling counter value ***");
                                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                            } else {
                                log("*** " & testcasename() & ": INFO: MIM received with the expected rolling counter value ***");
                                v_counter := v_counter + 1;
                                v_expected_rolling_counter := v_expected_rolling_counter + 1;
                                tc_ac.start;
                                repeat;
                            }
                        }
                        [] avmPort.receive(
                                           mw_mimInd(
                                                     mw_mimMsg_e2eProtection
                                           )) {
                            tc_ac.stop;
                            log("*** " & testcasename() & ": FAIL: MIM received with unexpected rolling counter ***");
                            f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                        }
                        [] tc_ac.timeout {
                            log("*** " & testcasename() & ": FAIL: No MIM received ***");
                            f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                        }
                    }

                    // Postamble
                    f_poDefault();
                    f_cfDown();

                } // End of function f_TC_MIM_MSGF_BV_02


            } // End of group mimMessageFormat

@@ -456,7 +592,7 @@ module ItsAvm_TpFunctions {
                /**
                * @desc    TP Function for TC_MIM_MSD_PAR_BV_01
                */
                function f_MIM_MSD_PAR_BV_01() runs on ItsAvm {
                function f_TC_MIM_MSD_PAR_BV_01() runs on ItsAvm {

                    // Local variables
                    const LibCommon_BasicTypesAndValues.UInt8 c_gnNhBtpB := 2;
@@ -505,12 +641,12 @@ module ItsAvm_TpFunctions {
                    f_poDefault();
                    f_cfDown();

                } // End of function f_MIM_MSD_PAR_BV_01
                } // End of function f_TC_MIM_MSD_PAR_BV_01

                /**
                * @desc    TP Function for TC_MIM_MSD_PAR_BV_02
                */
                function f_MIM_MSD_PAR_BV_02() runs on ItsAvm {
                function f_TC_MIM_MSD_PAR_BV_02() runs on ItsAvm {

                    // Local variables
                    const LibCommon_BasicTypesAndValues.UInt8 c_gnHtTsb := 5;
@@ -560,12 +696,12 @@ module ItsAvm_TpFunctions {
                    f_poDefault();
                    f_cfDown();

                } // End of function f_MIM_MSD_PAR_BV_02
                } // End of function f_TC_MIM_MSD_PAR_BV_02

                /**
                * @desc    TP Function for TC_MIM_MSD_PAR_BV_03
                */
                function f_MIM_MSD_PAR_BV_03() runs on ItsAvm {
                function f_TC_MIM_MSD_PAR_BV_03() runs on ItsAvm {

                    // Local variables
                    var MimInd v_mimInd;
@@ -614,7 +750,7 @@ module ItsAvm_TpFunctions {
                    f_poDefault();
                    f_cfDown();

                } // End of function f_MIM_MSD_PAR_BV_03
                } // End of function f_TC_MIM_MSD_PAR_BV_03
            } // end group mimLowerLayerParameters

        } // End of group mimMessageDissemination
+9 −0
Original line number Diff line number Diff line
@@ -311,6 +311,15 @@ module LibItsAvm_Templates {
        }
    }

    /**
     * @desc    Default Receive template for MIM PDU
     */
    template (present) MIM mw_mimMsg_e2eProtection(
                                                   in template (present) AvmE2EProtection p_e2eProtection  := ?
                                                   ) modifies mw_mimMsg_any := {
        e2eProtection  := p_e2eProtection
    }

    group mim {

        template (omit) Mim m_mim(