Commit ca6c698e authored by garciay's avatar garciay
Browse files

UpperTester/DENM validation

parent 42ca0a54
Loading
Loading
Loading
Loading
+87 −3
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ module TestCodec_DENM {
                                        )
                              ),
                    true,
                    oct2bit('01020001B20788B80059F48D95CDEFC8C5E0020020002461A83C000004805A100C4528399D4C387FFF80'O)
                    oct2bit('010100002791e7800013c880010bd463c55862f518f1561cf9ae0e8716e0ba7ffffffe11186a004d46003e70f200c002813f9f80a6338102e4bef4ec6700014f902c2f4cc670fef83fec8c670ff19bfb7ec670fdbabfbd6c670fe87bf914c670228d4d0758800013c88000000013c88000803a7f538a'O)
                    );
      }
            
@@ -229,7 +229,7 @@ module TestCodec_DENM {
        var integer v_res := 0;
        var template (value) UtDenmResults v_expDecMsg := { utDenmTriggerResult := { true, { 2134392485, 3 } } };
        
        // Encode template
        // Decode template
        v_res := decvalue(v_binary, v_decMsg);
        log("Decoded message: ", v_decMsg);
        select (v_res) {
@@ -259,7 +259,7 @@ module TestCodec_DENM {
        var integer v_res := 0;
        var template (value) UtDenmResults v_expDecMsg := { utDenmUpdateResult := { true, { 5, 37072 } } };
        
        // Encode template
        // Decode template
        v_res := decvalue(v_binary, v_decMsg);
        log("Decoded message: ", v_decMsg);
        select (v_res) {
@@ -279,6 +279,90 @@ module TestCodec_DENM {
        }
      } // End of tc_Denm_UtDenmUpdateResult

      /**
       * @desc Validate decoding of Denm/UtDenmEventInd
       * @verdict Pass on success, Fail otherwise
       */
      testcase tc_Denm_UtDenmEventInd_1() runs on TCType system TCType {
        var bitstring v_binary := oct2bit('170036010100008235c70000411a81130a3007329ee28c001555b35a4e9006b49d200ffffffe10186a0f0000081405b000009ffff7fffd8ce0'O);
        var UtDenmEventInd v_decMsg;
        var integer v_res := 0;
        var template (present) UtDenmEventInd v_expDecMsg;
        
        v_expDecMsg := { denMsg :=
                         mw_denmPdu(
                                    mw_denm,
                                    mw_anyStationId, 
                                    ItsPduHeader_protocolVersion_currentVersion_, 
                                    ItsPduHeader_messageID_denm_
                                    )
        };
        // Decode template
        v_res := decvalue(v_binary, v_decMsg);
        log("Decoded message: ", v_decMsg);
        select (v_res) {
        case (0) {
          if(match(v_decMsg, v_expDecMsg)) {
            setverdict(pass);
          } else {
            setverdict(fail);
          }
        }
        case (1) {
          setverdict(fail, "Decoding failed.");
        }
        case (2) {
          setverdict(fail, "Not enough bits.");
        }
        }
      } // End of tc_Denm_UtDenmEventInd_1

      /**
       * @desc Validate decoding of Denm/UtDenmEventInd
       * @verdict Pass on success, Fail otherwise
       */
      testcase tc_Denm_UtDenmEventInd_2() runs on TCType system TCType {
        var bitstring v_binary := oct2bit('17007c0101000027bbe7800013dd80008bd45e6156c2f5196d52e4f9aaef1716df9ed064064000186a0f4aa3003e70f200c0028329211cf6338105cc41e42c6700014f6e73b72ec670ffeebf80ac670ffc93f8fcc670ff843f9c4c670ff7ebfab8c670269d6311d7c961eb8b63388400009eec000800009eec000c5f1af822'O);
        var UtDenmEventInd v_decMsg;
        var integer v_res := 0;
        var template (present) UtDenmEventInd v_expDecMsg;
        var template (value) SituationContainer v_situation := m_situation(CauseCodeType_vehicleBreakdown_, VehicleBreakdownSubCauseCode_unavailable_);

        v_expDecMsg := { denMsg :=
                         mw_denmPdu(
                                    mw_denm(
                                            mw_denmMgmtCon(
                                                           m_actionId(
                                                                        1,
                                                                        10171
                                                                        )
                                                           )
                                            ),
                                    10171
                                    )
        };
        //log("v_expDecMsg: ", v_expDecMsg);
        
        // Decode template
        v_res := decvalue(v_binary, v_decMsg);
        log("Decoded message: ", v_decMsg);
        select (v_res) {
        case (0) {
          if(match(v_decMsg, v_expDecMsg)) {
            setverdict(fail);
          } else {
            setverdict(pass, "Mismatch found, stationType mismatch");
          }
        }
        case (1) {
          setverdict(fail, "Decoding failed.");
        }
        case (2) {
          setverdict(fail, "Not enough bits.");
        }
        }
      } // End of tc_Denm_UtDenmEventInd_2

    } // End of group testDenmUpperTester
    
    group testDenmPort {