Commit 3a98ae69 authored by Yann Garcia's avatar Yann Garcia
Browse files

Start validate AtsSpatem

parent 8cba6a42
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -177,7 +177,17 @@ system.utPort.params := "UT_MAPEMSPATEM/UDP(dst_ip=127.0.0.1,dst_port=12345,src_
# Check that protocolVersion is set to 1 and messageID is set to 4
#ItsSpatem_TestCases.TC_IS_TLM_GEN_MSGF_BV_01
# An IUT shall include the unique identifier for the intersection as part of the signal phase and timing message broadcast
ItsSpatem_TestCases.TC_IS_TLM_GEN_MSGF_BV_02
#ItsSpatem_TestCases.TC_IS_TLM_GEN_MSGF_BV_02
# Check that TLM service generates a SPAT message with the revision data element synchronized with the revision data element in the intersection configuration of the roadway geometric information (MAP)
#ItsSpatem_TestCases.TC_IS_TLM_GEN_MSGF_BV_03
# An IUT shall include a timestamp as part of the signal phase and timing message broadcast
#ItsSpatem_TestCases.TC_IS_TLM_GEN_MSGF_BV_04
# An IUT shall include signalGroupe for each intersection if this signalGroup is defined in the intersection configuration of the roadway geometric information (MAP)
#ItsSpatem_TestCases.TC_IS_TLM_GEN_MSGF_BV_05
# For each vehicular manoeuvre at a signalized intersection, an IUT shall include the current movement state
#ItsSpatem_TestCases.TC_IS_TLM_GEN_MSGF_BV_06
# For each pedestrian manoeuvre at a signalized intersection, an IUT shall include the current movement state
ItsSpatem_TestCases.TC_IS_TLM_GEN_MSGF_BV_07

[MAIN_CONTROLLER]
# The options herein control the behavior of MC.
+120 −16
Original line number Diff line number Diff line
@@ -288,7 +288,7 @@ module ItsSpatem_TpFunctions {
                                        -, //IntersectionReferenceID p_id
                                        -, //MsgCount p_revision
                                        -, //IntersectionStatusObject p_status
                                        {mw_movementState}  //MovementList p_states
                                        {*, mw_movementState, *}  //MovementList p_states
                                    )}
                                )
                            )
@@ -316,6 +316,8 @@ module ItsSpatem_TpFunctions {
            function f_IS_TLM_GEN_MSGF_BV_06 () runs on ItsMapemSpatem {
                
                // Local variables
                var MapemInd v_mapem;
                var SpatemInd v_spatem;
                
                // Test control
                if (not PICS_SPATEM_GENERATION) {
@@ -330,8 +332,28 @@ module ItsSpatem_TpFunctions {
                // Preamble
                f_prInitialState();
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                // Wait for MAPEM sent
                f_awaitMapeMessage(
                                   mw_mapemInd(
                                               mw_mapemPdu(
                                                           mw_mapem(
                                                                    {
                                                                      mw_intersectionGeometry(
                                                                                              -, -, -,
                                                                                              ?
                                                                                              )
                                                                      }
                                                                    ))),
                                   v_mapem
                                   );
                // Wait for SPATEM sent
                tc_ac.start(2.0);
                f_awaitSpateMessage(
                    mw_spatemInd(
                        mw_spatemPdu(
                            mw_defaultSpatem
                    )),
                    v_spatem
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
@@ -342,13 +364,17 @@ module ItsSpatem_TpFunctions {
                                                            mw_spatemPdu(
                                                                         mw_spatem_intersections(
                                                                                                 {mw_IntersectionState(
                                        ?, //IntersectionReferenceID p_id
                                                                                                                       v_mapem.msgIn.map_.intersections[0].id, //IntersectionReferenceID p_id
                                                                                                                       -, //MsgCount p_revision
                                                                                                                       -, //IntersectionStatusObject p_status
                                        {mw_movementState(
                                                                                                                       {
                                                                                                                         *,
                                                                                                                         mw_movementState(
                                                                                                                                          ?,//SignalGroupID,    
                                                                                                                                          ? //MovementEventList,
                                        )} //MovementList p_states
                                                                                                                                          ),
                                                                                                                         *
                                                                                                                         } //MovementList p_states
                                                                                                                       )}
                                )
                            )
@@ -375,7 +401,85 @@ module ItsSpatem_TpFunctions {
             */
            function f_IS_TLM_GEN_MSGF_BV_07 () runs on ItsMapemSpatem {
                
                // TODO
                // Local variables
                var MapemInd v_mapem;
                var SpatemInd v_spatem;
                
                // Test control
                if (not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
                f_prInitialState();
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                // Wait for MAPEM sent
                f_awaitMapeMessage(
                                   mw_mapemInd(
                                               mw_mapemPdu(
                                                           mw_mapem(
                                                                    {
                                                                      mw_intersectionGeometry(
                                                                                              -, -, -,
                                                                                              { *, mw_roadLane(-, mw_laneAttributes_crosswak), * }
                                                                                              )
                                                                      }
                                                                    ))),
                                   v_mapem
                                   );
                log("######################## ", v_mapem);
                // Wait for SPATEM sent
                f_awaitSpateMessage(
                    mw_spatemInd(
                        mw_spatemPdu(
                            mw_defaultSpatem
                    )),
                    v_spatem
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                                               mw_spatemInd(
                                                            mw_spatemPdu(
                                                                         mw_spatem_intersections(
                                                                                                 {mw_IntersectionState(
                                                                                                                       v_mapem.msgIn.map_.intersections[0].id, //IntersectionReferenceID p_id
                                                                                                                       -, //MsgCount p_revision
                                                                                                                       -, //IntersectionStatusObject p_status
                                                                                                                       {
                                                                                                                         *,
                                                                                                                         mw_movementState(
                                                                                                                                          ?,//SignalGroupID,    
                                                                                                                                          ? //MovementEventList,
                                                                                                                                          ),
                                                                                                                         *
                                                                                                                         } //MovementList p_states
                                                                                                                       )}
                                )
                            )
                    )) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received SAPTEM PDU header. ***");
                        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_TLM_GEN_MSGF_BV_07
            
+4 −3
Original line number Diff line number Diff line
@@ -1739,6 +1739,7 @@ module ItsRSUsSimulator_Functions {
            // Update revision fields
            vc_rsuMessagesValueList[vc_rsu_id].mapem.map_.intersections[0].revision := f_incMsgIssueRevision();
            // TODO Add more?
            vc_mapem := true;
          }
          if (vc_spatem == false) {
            vc_rsuMessagesValueList[vc_rsu_id].spatems[0] := m_spatemParm(
@@ -1754,10 +1755,11 @@ module ItsRSUsSimulator_Functions {
              vc_states[0][v_intersection] := vc_rsuMessagesValueList[vc_rsu_id].spatems[0].spat.intersections[v_intersection].states;
            } // End of 'for' statement
            // TODO Add more?
            vc_spatem := true;
          }
          log("a_process_cf_ut_command: MAPEM=", vc_rsuMessagesValueList[vc_rsu_id].mapem);
          vc_mapem := true;
          tc_mapem.start;
          log("a_process_cf_ut_command: SPATEM=", vc_rsuMessagesValueList[vc_rsu_id].spatems[0]);
          tc_mapem.start; // Start only MAPEM
          cfPort.send(UtMapemSpatemResults: { utMapemSpatemInitializeResult := true } );
          repeat;
        }
@@ -1768,7 +1770,6 @@ module ItsRSUsSimulator_Functions {
              // TODO
            }
            cfPort.send(UtMapemSpatemResults: { utMapemSpatemTriggerResult := true } );
            vc_spatem := true;
            tc_spatem.start;
          } else if (v_utMapemSpatemTrigger.event == mapProfile0) { // MAPEM command
            if (
+61 −10
Original line number Diff line number Diff line
@@ -3674,7 +3674,7 @@ module ItsRSUsSimulator_PicsInitConsts {
            
        } // End of group mapemZone6 

        group mapemConformamnceTest {
        group mapemConformanceTest {
          
          group profileId0 {
            
@@ -3884,6 +3884,38 @@ module ItsRSUsSimulator_PicsInitConsts {
                }
            } // End of c_PICS_MAP_ConfTest_ProfileId_0_Lane4
            
            const NodeListXY c_PICS_MAP_ConfTest_ProfileId_0_Lane5 := {
                nodes := {
                    {
                      delta := {
                        node_XY3 := {
                          x := 1616,
                          y := -250
                        }
                      },
                      attributes      := omit
                    },
                    {
                      delta := {
                        node_XY5 := {
                          x := 3637,
                          y := -4021
                        }
                      },
                      attributes      := omit
                    },
                    {
                      delta := {
                        node_XY6 := {
                          x := 5852,
                          y := -6316
                        }
                      },
                      attributes      := omit
                    }
                }
            } // End of c_PICS_MAP_ConfTest_ProfileId_0_Lane5
            
            const MapemParm c_PICS_MAP_ConfTest_ProfileId_0 := {
              intersections := {
                { // Start of intersection #0
@@ -3939,8 +3971,8 @@ module ItsRSUsSimulator_PicsInitConsts {
                    { // Start of Lane #2
                    laneID                      :=  2,
                    name                        := omit,
                    ingressApproach             := 1,
                    egressApproach              := omit,
                    ingressApproach             := omit,
                    egressApproach              := 1,
                    laneAttributes := {
                      directionalUse            := '10'B,
                      sharedWith                := '0000000000'B,
@@ -3993,10 +4025,10 @@ module ItsRSUsSimulator_PicsInitConsts {
                        }*/
                    }, // End of Lane #3
                    { // Start of Lane #4
                    laneID                      :=  2,
                    laneID                      :=  4,
                    name                        := omit,
                    ingressApproach             := 1,
                    egressApproach              := omit,
                    ingressApproach             := omit,
                    egressApproach              := 1,
                    laneAttributes := {
                      directionalUse            := '10'B,
                      sharedWith                := '0000000000'B,
@@ -4010,7 +4042,26 @@ module ItsRSUsSimulator_PicsInitConsts {
                    connectsTo                  := omit,
                    overlays                    := omit,
                    regional                    := omit
                    } // End of Lane #4
                    }, // End of Lane #4
                    { // Start of Lane #5
                    laneID                      :=  5,
                    name                        := omit,
                    ingressApproach             := omit,
                    egressApproach              := omit,
                    laneAttributes := {
                      directionalUse            := '11'B,
                      sharedWith                := '0000000000'B,
                      laneType := {
                        crosswalk             := '0000011010000000'B
                      },
                      regional                := omit
                    },
                    maneuvers                   := omit,
                    nodeList                    := c_PICS_MAP_ConfTest_ProfileId_0_Lane5,
                    connectsTo                  := omit,
                    overlays                    := omit,
                    regional                    := omit
                    } // End of Lane #5
                  }, // End of LaneSet
                  preemptPriorityData           := omit,
                  regional                      := omit
@@ -4021,7 +4072,7 @@ module ItsRSUsSimulator_PicsInitConsts {
            
          } // End of group profileId0
          
        } // End of group mapemConformamnceTest
        } // End of group mapemConformanceTest
        
    } // End of group mapemEvents 
    
@@ -4587,7 +4638,7 @@ module ItsRSUsSimulator_PicsInitConsts {
            
        } // End of group spatemZone6
        
        group spatemConformamnceTest {
        group spatemConformanceTest {
          
          group profileId0 {
            
@@ -4674,7 +4725,7 @@ module ItsRSUsSimulator_PicsInitConsts {
            } // End of c_PICS_SPAT_ConfTest_ProfileId_0
          } // End of group profileId0
          
        } // End of group spatemConformamnceTest
        } // End of group spatemConformanceTest
        
    } // End of group spatemEvents
    
+33 −21
Original line number Diff line number Diff line
@@ -535,7 +535,12 @@ module ItsSecurity_TestCases {
                }
                
                // Test component configuration
                f_cf01Up(); // Initialise IUT with PX_CERTIFICATE_NAME
                //vc_hashedId8ToBeUsed := cc_iutCert_A_N; // ecdsaNistP256 SHA-256 (uncompressed)
                //vc_hashedId8ToBeUsed := cc_iutCert_A_B; // ecdsaBrainpoolP256r1
                //vc_hashedId8ToBeUsed := cc_iutCert_A_B_N; // ecdsaBrainpoolP256r1 (uncompressed)
                //vc_hashedId8ToBeUsed := cc_iutCert_A_B3; // ecdsaBrainpoolP384r1
                //vc_hashedId8ToBeUsed := cc_iutCert_A_B3_N; // ecdsaBrainpoolP384r1 (uncompressed)
                f_cf01Up();
                
                // Test adapter configuration
                
@@ -686,7 +691,6 @@ module ItsSecurity_TestCases {
             *     when {
             *         the IUT is sending secured CAM as a message of type EtsiTs103097Data
             *             containing signer
             *                 containing signer
             *                     containing certificate
             *     } then {
             *         this message
@@ -1784,7 +1788,7 @@ module ItsSecurity_TestCases {
             *          at TIME_1
             *      and the IUT having received a CAM
             *          containing inlineP2pcdRequest
             *              containing HashedId3 value
             *              containing HashedId3 value HASHED_ID_3
             *                  indicating last 3 octets of currently used AT certificate
             *          at TIME_2 (TIME_1 < TIME_2 < TIME_1 + 1sec)
             *  }
@@ -1796,7 +1800,7 @@ module ItsSecurity_TestCases {
             *          the IUT sends a CAM
             *              containing signer
             *               and containing certificate
             *                   referenced by the requested digest 
             *                      referenced by the HashedId3 value HASHED_ID_3 
             *      }
             *  }
             * </pre>
@@ -2479,7 +2483,7 @@ module ItsSecurity_TestCases {
             *              containing signer
             *                  containing certificate
             *              and containing headerInfo
             *                  does not containing requestedCertificate 
             *                  not containing requestedCertificate 
             *      }
             *  }
             * </pre>
@@ -3145,6 +3149,10 @@ module ItsSecurity_TestCases {
             * Initial conditions:
             *  with {
             *      the IUT is authorized with AT certificate (X_CERTIFICATE) 
             *          containing verifyKeyIndicator
             *              containing verificationKey
             *                  containing X_KEY
             *                      indicating KEY
             *  }
             *  ensure that {
             *      when {
@@ -3182,7 +3190,9 @@ module ItsSecurity_TestCases {
                }
                
                // Test component configuration
                f_cf01Up(); // Initialise IUT with PX_CERTIFICATE_NAME
                //vc_hashedId8ToBeUsed := cc_iutCert_A_B; // ecdsaBrainpoolP256r1
                //vc_hashedId8ToBeUsed := cc_iutCert_A_B3; // ecdsaBrainpoolP384r1
                f_cf01Up();
                
                // Test adapter configuration
                
@@ -3261,7 +3271,7 @@ module ItsSecurity_TestCases {
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      the IUT is authorized with AT certificate (X_CERTIFICATE) 
             *      the IUT is authorized with AT certificate (CERT_IUT_A_AT) 
             *  }
             *  ensure that {
             *      when {
@@ -5359,7 +5369,9 @@ module ItsSecurity_TestCases {
                }
                
                // Test component configuration
                f_cf01Up(); // Initialise IUT with PX_CERTIFICATE_NAME
                //vc_hashedId8ToBeUsed := cc_iutCert_A_B; // ecdsaBrainpoolP256r1
                //vc_hashedId8ToBeUsed := cc_iutCert_A_B3; // ecdsaBrainpoolP384r1
                f_cf01Up();
                
                // Test adapter configuration
                
@@ -6018,8 +6030,7 @@ module ItsSecurity_TestCases {
             *                         containing headerInfo
             *                             containing generationTime
             *                             and not containing expiryTime
             *                             and not containing generationLocation, 
             *                             and not containing encryptionKey
             *                             and not containing generationLocation
             *                             and not containing p2pcdLearningRequest
             *                             and not containing missingCrlIdentifier
             *     }
@@ -6231,8 +6242,7 @@ module ItsSecurity_TestCases {
             * </pre>
             *
             * @see         ETSI TS 103 096-2 v1.5.1 TP_SEC_ITSS_SND_GENMSG_05_BV
             * @reference   ETSI TS 103 097 [1] Clauses 7.1.3
             * @reference   IEEE 1609.2 [2] Clause 6.3.4
             * @reference   ETSI TS 103 097 [1] Clauses 5.4 & 7.1.3
             */
            testcase TC_SEC_ITSS_SND_GENMSG_05_BV() runs on ItsGeoNetworking system ItsSecSystem {
                    
@@ -6462,14 +6472,12 @@ module ItsSecurity_TestCases {
             *         the IUT is requested to send a secured Beacon
             *     } then {
             *         the IUT sends a message of type EtsiTs103097Data
             *              contains content
             *                  contains signedData
             *                      containing tbsData
             *                          containing payload
             *                              containing data
             *                                  containing content
             *                                      containing unsecuredData
             *                                          containing not-empty data
             *              contains signer
             *                  contains certificate
             *                      containing appPermissions
             *                          containing an item of type PsidSsp
             *                              containing psid 
             *                                  indicating value AID_GNMGMT
             *     }
             * }
             * </pre>
@@ -6602,6 +6610,8 @@ module ItsSecurity_TestCases {
                }
                
                // Test component configuration
                //vc_hashedId8ToBeUsed := cc_iutCert_A_B; // ecdsaBrainpoolP256r1
                //vc_hashedId8ToBeUsed := cc_iutCert_A_B3; // ecdsaBrainpoolP384r1
                f_cf01Up();
                v_longPosVectorIut := f_getPosition(c_compIut);
                    
@@ -6878,7 +6888,7 @@ module ItsSecurity_TestCases {
             * Config Id: CF01
             * Initial conditions:
             *  with {
             *      the IUT is authorized with AT certificate (X_CERTIFICATE) 
             *      the IUT is authorized with certificate C_ISSUER 
             *  }
             *  ensure that {
             *      when {
@@ -6999,6 +7009,8 @@ module ItsSecurity_TestCases {
                }
                
                // Postamble
                f_poNeighbour();
                f_cf01Down();
                
            } // End of testcase TC_SEC_ITSS_SND_CERT_03_BV
            
Loading