Commit 6de01b01 authored by petersenj's avatar petersenj
Browse files

new TCs TP_PMR_0836_01, TP_PMR_0843_01, TP_PMR_0808_01, TP_PMR_0817_01

corrected and spotted logical errors in T1T2 data...
parent 19cb8a58
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -70,6 +70,15 @@ module dPMR_Pixits {
		modulepar {Bit8 PXT_SLOW_DATA_BYTE_3 := '10101001'B}
		modulepar {Bit8 PXT_SLOW_DATA_BYTE_4 := '01101100'B}
		
		/**
		* @desc 	Preset T3 DATA SINGLE FRAME
		* 	
		* @remark 	only used for TP 0836_1 and 0843_01 
		*/
		modulepar {Data PXT_SINGLE_T3_DATA_FRAME } // TODO set correctly!
		modulepar {CrcD PXT_SINGLE_T3_DATA_FRAME_CRC}
		modulepar {CrcD PXT_SINGLE_T3_DATA_FRAME_WRONG_CRC}
		
	} // end InputData

	group AddressesAndIdsUsed {
+43 −1
Original line number Diff line number Diff line
@@ -61,6 +61,18 @@
			p_packetFrame
		);

		template PacketDataFrameList m_packetDataFrameList_8Elem (template PacketFrame p_packetFrame) :=  {
			p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame
		}
		template PacketDataFrameList m_packetDataFrameList_1Elem (template PacketFrame p_packetFrame) :=  {
			p_packetFrame
		}
		template PacketDataFrameList m_packetDataFrameList_4Elem (	template PacketFrame p_packetFrame1,
																	template PacketFrame p_packetFrame2,
																	template PacketFrame p_packetFrame3,
																	template PacketFrame p_packetFrame4) :=  {
			p_packetFrame1,p_packetFrame2,p_packetFrame3,p_packetFrame4
		}

		group SuperFrameGroup {

@@ -233,6 +245,19 @@
				data := ?
			}

			template PacketFrame m_packetDataFrame (ColourCode p_cc,
													PacketDataFrameNumber p_packetDataFrameNumber,
													ValidDataLen p_validDataLen,
													CrcD p_crcD,
													Data p_data) := {
				colourCode := p_cc,
				packetDataFrameNumber := ? ,
				validDataLength := p_validDataLen ,
				reserved14bit := c_reserved14bitForT3Data ,
				crcForData := p_crcD,
				data := p_data
			}
			
		} // end Group T3DataFrameGroup

		
@@ -448,6 +473,7 @@
	  		callInformation := { 
				ciInformationNormalOrPws :=c_ciInformationNormal }
		} // end m_headerInformation
		
	 	template HeaderInformation  m_ackHeaderInformation( HeaderType p_hdrTp,
														 MsAddress p_calledId , 
													     MsAddress    p_ownId, 
@@ -472,7 +498,7 @@
																			MsAddress p_calledId , 
													     					MsAddress    p_ownId, 
													     					CommunicationsMode p_commMode,
													     					CommsFormat p_commFormat
													     					CommsFormat p_commFormat // todo jp theis might be needed: in template CallInformation p_callInfo
													    					) := {
			headerType := p_hdrTp,
	  		calledId := p_calledId,
@@ -499,6 +525,22 @@
	  		callInformation := ?
		} // end mw_headerInformationVoiceTx

		
	 	template HeaderInformation  mw_ackHeaderInformationTx ( MsAddress p_calledId , 
													      		  MsAddress    p_ownId, 
													      		  template CommunicationsMode p_commMode,
													          	  template CommsFormat p_commFormat,
													          	  CiTypeAck p_ciTypeAck
													     		) := {
			headerType := e_ackHeader,
	  		calledId := p_calledId,
	  		ownId := p_ownId,
	  		communicationsMode := p_commMode,
	    	commsFormat := p_commFormat,
	  		reserved2bit := c_reserved2bits,
	  		callInformation := { ciInformationAck:= { ciTypeAck  :=p_ciTypeAck, ciInfoAck := ?}}
		} // end mw_ackHeaderInformationTx
		
	 	template HeaderInformation  mw_headerConnectRequestTx ( MsAddress p_calledId , 
													      	  	MsAddress    p_ownId, 
													      		CommunicationsMode p_commMode,
+272 −9
Original line number Diff line number Diff line
@@ -1097,6 +1097,49 @@ module dPMR_TestCases {
				f_cfMseDown(v_mse, v_ut);
			} // end TC_PMR_0808_01
			
			
			testcase TC_PMR_0817_01(   )
			runs on ServerSyncComp
			system TestAdapter {
		      	var Mse v_mse;
				var Ut v_ut;
				var FncRetCode v_ret := e_success;

				//Configuration Up
				f_cfMseUp(v_mse, v_ut);

				//Test body
				v_mse.start(f_TC_ackOnT3Data_MS01());
				v_ut.start(f_TC_msAction_UT(m_commandCSF_utRequest( c_defaultPeerToPeerDialString, e_receiveT3DataCall))); // TODO JP must be wrong!!!!

				// synchronize both PTCs
				f_serverSync2ClientsAndStop({c_prDone, c_tbDone});

				// Configuration Down
				f_cfMseDown(v_mse, v_ut);
			} // end TC_PMR_0817_01

			testcase TC_PMR_0818_01(   )
			runs on ServerSyncComp
			system TestAdapter {
		      	var Mse v_mse;
				var Ut v_ut;
				var FncRetCode v_ret := e_success;

				//Configuration Up
				f_cfMseUp(v_mse, v_ut);

				//Test body
				v_mse.start(f_TC_nackOnT3Data_MS01());
				v_ut.start(f_TC_msAction_UT(m_commandCSF_utRequest( c_defaultPeerToPeerDialString, e_receiveT3DataCall))); // TODO JP must be wrong!!!!

				// synchronize both PTCs
				f_serverSync2ClientsAndStop({c_prDone, c_tbDone});

				// Configuration Down
				f_cfMseDown(v_mse, v_ut);
			} // end TC_PMR_0818_01
			
		} // end group Type3Data
	} // end group CSF_only
	group ISF_only {// Clause 5.3
@@ -1356,7 +1399,7 @@ module dPMR_TestCases {
			//Test Body
			tc_ac.start ;  
			dp1Port.send(	m_voiceorT1orT2PayloadTransmission(
								m_packetDataHeaderFrame(	
								m_packetDataHeaderFrame(	// todo jp this is wrong template, this should be only for t3!
									m_headerInformation(
										e_commStartHeader, 
										vc_mse.iutId, 
@@ -1392,10 +1435,10 @@ module dPMR_TestCases {
																	e_shortFileTransfer,
																	e_finishAfterFrame,
																	PXT_DATA_T1_F4_length)))),
										m_endFrame(m_endInformationNoAck)));
										m_endFrame(m_endInformationAck))); // TODO is this correct?

			alt {
				[] dp1Port.receive(m_acknowledgement(
				[] dp1Port.receive(m_acknowledgement( // TODO check if ok.
									    m_headerInformation(e_ackHeader, vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p),
										vc_mse.colourCode)
								   )
@@ -1415,6 +1458,157 @@ module dPMR_TestCases {

		} // end f_TC_ackOnT1Data_MS01

		/**
		* @desc Checks that the MS responds with an ACK when receiving T3 data and ack req in endframe.
		*/
		function f_TC_ackOnT3Data_MS01( )
		runs on Mse{
			// Variables
			var FncRetCode v_ret := e_success;
			var default v_defvar;

			//Test System Parameters
			f_initMse();
		
			//Default
			v_defvar := activate(a_dftMse(vc_mse.colourCode, e_dataT1));

			//Preamble
			f_clientSyncAndVerdict(c_prDone, v_ret); 
		
			//Test Body
			tc_ac.start ;  
			dp1Port.send(	m_T3DataPayloadTransmission( // todo check it does not contain matching!
								m_packetDataHeaderFrame(	
									m_headerInformation(
										e_commStartHeader, 
										vc_mse.iutId, 
										vc_mse.testerId, 
										e_dataT3, 
										e_p2p),
									vc_mse.colourCode),
								m_packetDataFrameList_1Elem(
									m_packetDataFrame( 
										vc_mse.colourCode,
										1,
										32,
										PXT_SINGLE_T3_DATA_FRAME_CRC,
										PXT_SINGLE_T3_DATA_FRAME)),
								m_endFrame(m_endInformationAck)));// TODO is this correct?

			alt {
				[] dp1Port.receive(m_acknowledgement(
									    mw_ackHeaderInformationTx(
									    	vc_mse.testerId, 
									    	vc_mse.iutId, 
									    	e_voice, 
									    	e_p2p,
									    	e_ack),
										vc_mse.colourCode)
								   )
					{
						tc_ac.stop;
						setverdict(pass);
					}
				[] tc_ac.timeout {
						log("**** f_TC_ackOnT3Data_MS01: Timeout: TC Timer expiration before reception of Acknowledgement ****");
						setverdict(fail);	
					}
			} // end alt

			//no Postamble
		
			deactivate;

		} // end f_TC_ackOnT3Data_MS01
		
		/**
		* @desc Checks that the MS responds with an ACK when receiving T3 data and ack req in endframe.
		*/
		function f_TC_nackOnT3Data_MS01( )
		runs on Mse{
			// Variables
			var FncRetCode v_ret := e_success;
			var default v_defvar;
			var AckFrame v_ackFrame;

			//Test System Parameters
			f_initMse();
		
			//Default
			v_defvar := activate(a_dftMse(vc_mse.colourCode, e_dataT1));

			//Preamble
			f_clientSyncAndVerdict(c_prDone, v_ret); 
		
			//Test Body
			tc_ac.start ;  
			dp1Port.send(	m_T3DataPayloadTransmission(// todo check it does not contain matching!
								m_packetDataHeaderFrame(	
									m_headerInformation(
										e_commStartHeader, 
										vc_mse.iutId, 
										vc_mse.testerId, 
										e_dataT3, 
										e_p2p),
									vc_mse.colourCode),
								m_packetDataFrameList_4Elem(
									m_packetDataFrame( 
										vc_mse.colourCode,
										1,
										32,
										PXT_SINGLE_T3_DATA_FRAME_CRC,
										PXT_SINGLE_T3_DATA_FRAME),
									m_packetDataFrame( 
										vc_mse.colourCode,
										1,
										32,
										PXT_SINGLE_T3_DATA_FRAME_CRC,
										PXT_SINGLE_T3_DATA_FRAME),
									m_packetDataFrame( 
										vc_mse.colourCode,
										1,
										32,
										PXT_SINGLE_T3_DATA_FRAME_CRC,
										PXT_SINGLE_T3_DATA_FRAME),
									m_packetDataFrame( 
										vc_mse.colourCode,
										1,
										32,
										PXT_SINGLE_T3_DATA_FRAME_WRONG_CRC,
										PXT_SINGLE_T3_DATA_FRAME)),
								m_endFrame(m_endInformationAck)));// TODO is this correct?

			alt {
				[] dp1Port.receive(m_acknowledgement(
									    mw_ackHeaderInformationTx(
									    	vc_mse.testerId, 
									    	vc_mse.iutId, 
									    	e_dataT3, 
									    	e_p2p, 
									    	e_nackReqResend),
										vc_mse.colourCode)) -> value v_ackFrame
					{
						tc_ac.stop;
						if (v_ackFrame.headerInformation0.callInformation.ciInformationAck.ciInfoAck != '00000011'B) {
							log("**** f_TC_nackOnT3Data_MS01: Not correct framenumber in the Call Information Acknowledgement resend info ****");
							setverdict(fail);
						} else {
							setverdict(pass);
						}
					}
				[] tc_ac.timeout {
						log("**** f_TC_nackOnT3Data_MS01: Timeout: TC Timer expiration before reception of Acknowledgement ****");
						setverdict(fail);	
					}
			} // end alt

			//no Postamble
		
			deactivate;

		} // end f_TC_nackOnT3Data_MS01
		
		/**
		* @desc	Check that a voice transmission from the MS (IUT) consists of a Header Frame, a list of
		*       Super Frames, and an End Frame,
@@ -1934,15 +2128,19 @@ module dPMR_TestCases {
		} // end function f_TC_T3DataHeaderTx_MS01

		/**
		* @desc	Check that a T3DataHeader transmission from the MS (IUT) contain a Packet data header with a framsync of FS4
		* @desc	Check that a T3 Data message is received
		// TODO can this be removed???
		*
		*/
		function f_TC_T3Tx_MS01 (CommunicationsMode p_commsMode  )
/*		function f_TC_T3Tx_MS01 (CommunicationsMode p_commsMode  )
		runs on Mse{
			// Variables
			var FncRetCode v_ret := e_success;
			var UInt16 v_sfCount := 0;
			var default v_defvar;
			var PacketDataHeader v_packetDataHeader;
			var PdS v_pdS;
			var PdM v_pdM;

			//Test System Parameters
			f_initMse();
@@ -1963,9 +2161,74 @@ module dPMR_TestCases {
										vc_mse.iutId,
										p_commsMode,
										e_p2p),
									vc_mse.colourCode))
									vc_mse.colourCode)) -> value v_packetDataHeader    
				{// must be done in two steps.
					// get dpS and dpM
					v_pdS := v_packetDataHeader.headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationNormal.ciInfoNormalDataT3.pdS;
					v_pdM := v_packetDataHeader.headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationNormal.ciInfoNormalDataT3.pdM;
					if (v_pdS == e_frmTm80ms) {
						alt {
						[] 	dp1Port.receive(m_packetDataPayloadsAndEndFrame(
												m_packetDataFrameList(
												mw_packetDataFrame(
													vc_mse.colourCode,
													v_pdM,
													?,
													m_userDataPds1))))
							{
								tc_ac.stop ;
								setverdict(pass);
							}
						}
					} else if (v_pdS == e_frmTm160ms) {
						alt {
						[] 	dp1Port.receive(m_packetDataPayloadsAndEndFrame(
												m_packetDataFrameList(
												mw_packetDataFrame(
													vc_mse.colourCode,
													v_pdM,
													?,
													m_userDataPds2))))
							{
								tc_ac.stop ;
								setverdict(pass);
							}
						}
					} else if (v_pdS == e_frmTm240ms) {
						alt {
						[] 	dp1Port.receive(m_packetDataPayloadsAndEndFrame(
												m_packetDataFrameList(
												mw_packetDataFrame(
													vc_mse.colourCode,
													v_pdM,
													?,
													m_userDataPds3))))
							{
								tc_ac.stop ;
								setverdict(pass);
							}
						}
					} else if (v_pdS == e_frmTm320ms) {
						alt {
						[] 	dp1Port.receive(m_packetDataPayloadsAndEndFrame(
												m_packetDataFrameList(
													mw_packetDataFrame(
														vc_mse.colourCode,
														v_pdM,
														?,
														m_userDataPds4)),
												m_endFrame(mw_endInformation(e_AckReq))))
							{
					// received correctly
								tc_ac.stop ;
								setverdict(pass);
							}
						}
					} else {
						tc_ac.stop ;
						setverdict(fail);
					}
					
						
					tc_ac.stop ;
					setverdict(pass);
				}
@@ -1980,7 +2243,7 @@ module dPMR_TestCases {
			deactivate;

		} // end function f_TC_T3DataHeaderTx_MS01

*/
	   /**
		* @desc	Check that a voice transmission from the MS (IUT) consists of a Header Frame, a list of
		*       Super Frames, and an End Frame,
+1 −1
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ module dPMR_TestExecution {
		//	} // end group SlowUserData
		//	group Type3Data { // Clause 5.2.7
				if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0808_01() );}
//				if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0817_01() );}
				if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0817_01() );}
//				if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0819_01() );}
//				if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0820_01() );}
//				if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0821_01() );}
+2 −1
Original line number Diff line number Diff line
@@ -545,7 +545,8 @@ module dPMR_Types {
			e_ifOACSUEnabledPleaseAccept (19), // Make a OACSU call and Say Ok when displayed the other party available
			e_makeOACSUCallAndCheckCallFail (20),  // Make a OACSU call and Check That Call Fail
			e_enableSlowDataAndSetPresetSlowDataAndPresPtt (21), // Enable Slow Data and Set Preset Slow Data and press Ptt
			e_makeT3DataCall (9) // Make a T3 data call with preset data???
			e_makeT3DataCall (22), // Make a T3 data call with preset data???
			e_receiveT3DataCall (23) // receive T3 data call 
			}

		// ------------ MS configuration parameters ---------------
Loading