module ItsRtcmem_TpFunctions { // LibCommon import from LibCommon_BasicTypesAndValues all; import from LibCommon_Sync all; import from LibCommon_VerdictControl all; import from LibCommon_Time all; // LibItsCommon import from LibItsCommon_Functions all; import from LibItsCommon_TypesAndValues all; // LibIts import from ITS_Container language "ASN.1:1997" all; import from RTCMEM_PDU_Descriptions language "ASN.1:1997" all; // LibItsRtcmem import from LibItsRtcmem_TestSystem all; import from LibItsRtcmem_Functions all; import from LibItsRtcmem_Templates all; import from LibItsRtcmem_TypesAndValues all; import from LibItsRtcmem_Pics all; import from LibItsRtcmem_Pixits all; group messageFormat { /** * @desc TP Function for TC_IS_GPC_GEN_MSGF_BV_01 */ function f_IS_GPC_GEN_MSGF_BV_01() runs on ItsRtcmem { // Local variables // Test control if (not PICS_RTCMEM_GENERATION) { log("*** " & testcasename() & ": PICS_RTCMEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body f_utTriggerEvent(m_utTriggerEvent(10, -, { char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;") })); tc_ac.start; alt { [] rtcmemPort.receive( mw_rtcmemInd( mw_rtcmemPdu )) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received RTCMEM 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_utTerminateEvent(m_utTriggerTermination(10)); f_poDefault(); f_cfDown(); } // End of function f_IS_GPC_GEN_MSGF_BV_01 } // End of group messageFormat group eventGeneration { function f_IS_GPC_GEN_EVGN_BV_01() runs on ItsRtcmem { // Local variables // Test control if (not PICS_RTCMEM_GENERATION) { log("*** " & testcasename() & ": PICS_RTCMEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body f_utTriggerEvent(m_utTriggerEvent(10, -, { char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;") })); tc_ac.start; alt { [] rtcmemPort.receive( mw_rtcmemInd( mw_rtcmemPdu )) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received RTCMEM 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); } } // End of 'alt' statement // Postamble f_utTerminateEvent(m_utTriggerTermination(10)); f_poDefault(); f_cfDown(); } // End of function f_IS_GPC_GEN_EVGN_BV_01 function f_IS_GPC_GEN_EVGN_BV_02() runs on ItsRtcmem { // Local variables // Test control if (not PICS_RTCMEM_GENERATION) { log("*** " & testcasename() & ": PICS_RTCMEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_utTriggerEvent(m_utTriggerEvent(10, -, { char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;") })); tc_ac.start; alt { [] rtcmemPort.receive( mw_rtcmemInd( mw_rtcmemPdu )) { tc_ac.stop; log("*** " & testcasename() & ": INFO: Successfully received RTCMEM PDU header. ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } // End of 'alt' statement // Test Body f_utTerminateEvent(m_utTriggerTermination(10)); tc_noac.start; rtcmemPort.clear; alt { [] rtcmemPort.receive( mw_rtcmemInd( mw_rtcmemPdu )) { tc_noac.stop; log("*** " & testcasename() & ": FAIL: Successfully received RTCMEM PDU header. ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_noac.timeout { log("*** " & testcasename() & ": PASS: IUT stops sending RTCMEM. ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } // End of 'alt' statement // Postamble f_poDefault(); f_cfDown(); } // End of function f_IS_GPC_GEN_EVGN_BV_02 } // End of group eventGeneration group communication { function f_IS_GPC_GEN_COM_BV_02() runs on ItsRtcmem { // Local variables // Test control if (not PICS_RTCMEM_GENERATION) { log("*** " & testcasename() & ": PICS_RTCMEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_utTriggerEvent(m_utTriggerEvent(10, -, { char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;") })); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_ac.start; alt { [] rtcmemPort.receive( mw_rtcmemIndWithBtpParameters( mw_rtcmemPdu, 2013, 0 )) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received RTCMEM 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); } } // End of 'alt' statement // Postamble f_utTerminateEvent(m_utTriggerTermination(10)); f_poDefault(); f_cfDown(); } // End of function f_IS_GPC_GEN_COM_BV_02 function f_IS_GPC_GEN_COM_BV_03() runs on ItsRtcmem { // Local variables // Test control if (not PICS_RTCMEM_GENERATION or not PICS_SHORT_RANGE) { log("*** " & testcasename() & ": PICS_RTCMEM_GENERATION and PICS_SHORT_RANGE required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_utTriggerEvent(m_utTriggerEvent(10, -, { char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;") })); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_ac.start; alt { [] rtcmemPort.receive( mw_rtcmemIndWithGnParameters( mw_rtcmemPdu, -, 4 )) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received RTCMEM 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); } } // End of 'alt' statement // Postamble f_utTerminateEvent(m_utTriggerTermination(10)); f_poDefault(); f_cfDown(); } // End of function f_IS_GPC_GEN_COM_BV_03 } // End of group communication group security { function f_IS_GPC_GEN_SEC_BV_01() runs on ItsRtcmem { // Local variables // Test control if (not PICS_RTCMEM_GENERATION or not PICS_IS_IUT_SECURED) { log("*** " & testcasename() & ": PICS_RTCMEM_GENERATION and PICS_IS_IUT_SECURED required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_utTriggerEvent(m_utTriggerEvent(10, -, { char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;") })); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_ac.start; alt { [] rtcmemPort.receive( mw_rtcmemIndWithSecurityParameters( mw_rtcmemPdu, -, c_its_aid_GPC )) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received secured RTCMEM 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); } } // End of 'alt' statement // Postamble f_utTerminateEvent(m_utTriggerTermination(10)); tc_noac.start; rtcmemPort.clear; alt { [] rtcmemPort.receive( mw_rtcmemInd( mw_rtcmemPdu )) { tc_noac.stop; log("*** " & testcasename() & ": INCON: Successfully received RTCMEM PDU header. ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } [] tc_ac.timeout { log("*** " & testcasename() & ": INFO: IUT stops sending RTCMEM. ***"); } } // End of 'alt' statement f_utTerminateEvent(m_utTriggerTermination(10)); f_poDefault(); f_cfDown(); } // End of function f_IS_GPC_GEN_SEC_BV_01 function f_IS_GPC_GEN_SSP_BV_01() runs on ItsRtcmem { // Local variables // Test control if (not PICS_RTCMEM_GENERATION or not PICS_IS_IUT_SECURED) { log("*** " & testcasename() & ": PICS_RTCMEM_GENERATION and PICS_IS_IUT_SECURED required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_utTriggerEvent(m_utTriggerEvent(10, -, { char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;") })); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_ac.start; alt { [] rtcmemPort.receive( mw_rtcmemIndWithSecurityParameters( mw_rtcmemPdu, oct2bit('010000'O), c_its_aid_GPC )) { tc_ac.stop; log("*** " & testcasename() & ": PASS: Successfully received secured RTCMEM 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); } } // End of 'alt' statement // Postamble f_utTerminateEvent(m_utTriggerTermination(10)); f_poDefault(); f_cfDown(); } // End of function f_IS_GPC_GEN_SSP_BV_01 function f_IS_GPC_RCV_SSP_BV_01() runs on ItsRtcmem { // Local variables var RtcmemReq v_rtcmemReq; var integer i; // Test control if (not PICS_RTCMEM_RECEPTION or not PICS_IS_IUT_SECURED) { log("*** " & testcasename() & ": PICS_RTCMEM_RECEPTION and PICS_IS_IUT_SECURED required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Use default certificate // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body v_rtcmemReq := valueof( m_rtcmemReq( m_rtcmemPdu( m_defaultRtcmem( 123, -, { char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;") } ) ) ) ); rtcmemPort.send(v_rtcmemReq); f_sleep(PX_TNOAC); for(i:=0; i < lengthof(vc_utEvents) and not match(v_rtcmemReq.msgOut, vc_utEvents[i].rtcmemMsg); i := i + 1) { // empty on purpose } if(i < lengthof(vc_utEvents)) { log("*** " & testcasename() & ": FAIL: RTCMEM was not transmitted to upper layer ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: RTCMEM was transmitted to upper layer ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // Postamble f_utTerminateEvent(m_utTriggerTermination(10)); f_poDefault(); f_cfDown(); } // End of function f_IS_GPC_RCV_SSP_BV_01 function f_IS_GPC_RCV_SSP_BO_02() runs on ItsRtcmem { // Local variables var RtcmemReq v_rtcmemReq; var integer i; // Test control if (not PICS_RTCMEM_RECEPTION or not PICS_IS_IUT_SECURED) { log("*** " & testcasename() & ": PICS_RTCMEM_RECEPTION and PICS_IS_IUT_SECURED required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp("CERT_TS_RTCMEM_BO_02_AT"); // not containing appPermission item // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body v_rtcmemReq := valueof( m_rtcmemReq( m_rtcmemPdu( m_defaultRtcmem( 123, -, { char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;") } ) ) ) ); rtcmemPort.send(v_rtcmemReq); f_sleep(PX_TNOAC); for(i:=0; i < lengthof(vc_utEvents) and not match(v_rtcmemReq.msgOut, vc_utEvents[i].rtcmemMsg); i := i + 1) { // empty on purpose } if(i < lengthof(vc_utEvents)) { log("*** " & testcasename() & ": FAIL: RTCMEM was not transmitted to upper layer ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: RTCMEM was transmitted to upper layer ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // Postamble f_poDefault(); f_cfDown(); } // End of function f_IS_GPC_RCV_SSP_BO_02 } // End of group security group eventReception { /** * @desc TP Function for TC_IS_GPC_RCV_MSGF_BV_01 */ function f_IS_GPC_RCV_MSGF_BV_01() runs on ItsRtcmem { // Local variables var RtcmemReq v_rtcmmReq; var integer i; // Test control if (not PICS_RTCMEM_RECEPTION) { log("*** " & testcasename() & ": PICS_RTCMEM_RECEPTION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body v_rtcmmReq := valueof( m_rtcmemReq( m_rtcmemPdu( m_defaultRtcmem( 123, -, { char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;"), char2oct("STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;") } ) ) ) ); rtcmemPort.send(v_rtcmmReq); f_sleep(PX_TNOAC); for(i:=0; i < lengthof(vc_utEvents) and not match(v_rtcmmReq.msgOut, vc_utEvents[i].rtcmemMsg); i:=i+1) { // empty on purpose } if(i < lengthof(vc_utEvents)) { log("*** " & testcasename() & ": PASS: RTCMEM was transmitted to upper layer ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: RTCMEM was not transmitted to upper layer ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } // Postamble f_poDefault(); f_cfDown(); } // End of function f_IS_GPC_RCV_MSGF_BV_01 } // End of group eventReception } // End of module ItsRtcmem_TpFunctions