Commit 87666631 authored by petersenj's avatar petersenj
Browse files

Implemented TCs: 0852_01, 0851_01, 0840_01, changed 0405_2, corrected some bugs.

parent ac07bb12
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -238,12 +238,6 @@ module dPMR_Pics {

		modulepar {boolean PIC_CSF_GROUP_VOICE_SS_LATE_ENTRY := true}

		/**
		* @desc  	Is the CSF Group Voice Supp Services OACSU?
		* @remark	see PICS, Table A.11/2.
		*/
		modulepar {boolean PIC_CSF_GROUP_VOICE_SS_OACSU := true}

		/**
		* @desc  	Is the CSF Group Voice Supp Services Cancel Call Setup?
		* @remark	see PICS, Table A.11/3.
+43 −20
Original line number Diff line number Diff line
@@ -197,7 +197,7 @@

		} // end group VoiceFrameGroup

		template SlowData m_slowDataT1Data (DataPosition p_dataPos,
		template SlowData m_slowData (	DataPosition p_dataPos,
										DataFormat p_dataFormat,
										ContFlag p_contFlag,
										DataLength p_dataLength) := {
@@ -210,6 +210,19 @@
			}
		}

		template SlowData mw_slowData (	in template DataPosition p_dataPos,
										in template DataFormat p_dataFormat,
										in template ContFlag p_contFlag,
										in template DataLength p_dataLength) := {
			slowDataInDataT1OrT2 := {
			reserved5bit := '00000'B,
			dataPosition := p_dataPos,
			format := p_dataFormat,
			contFlag := p_contFlag,
			dataLength := p_dataLength
			}
		}

		group T3DataFrameGroup {
			template PacketFrame mw_packetDataFrame (ColourCode p_cc) := {
				colourCode := p_cc,
@@ -288,51 +301,61 @@
		        payload := p_payload
			} // end tamplate m_frame4T1Data

			template Frame1 mw_frame1dataT1 ( CalledIdUP p_calledIdUP )  := {
			template Frame1 mw_frame1dataT1orT2 ( 	CalledIdUP p_calledIdUP, 
													in template CommunicationsMode p_commsMode,
													in template SlowData p_slowData)  := {
				frameSync := c_fs2,
				frameNumber := e_frame1,
				calledIdUP := p_calledIdUP,
		   		communicationsMode := e_dataT1,
		   		communicationsMode := p_commsMode,
		        commsFormat := ?,
		        reserved2bit := c_reserved2bits,
		        slowData := c_slowDataInVoiceEmpty,
		        slowData := p_slowData,
		        payload := ?
			} // end template mw_frame1Voice
			} // end template mw_frame1dataT1orT2

		  	template Frame2 mw_frame2dataT1 ( CalledIdLP p_calledIdLP, ColourCode p_cc)  := {
		  	template Frame2 mw_frame2dataT1orT2 ( 	ColourCode p_cc,
													CalledIdLP p_calledIdLP,
													in template CommunicationsMode p_commsMode,
													in template SlowData p_slowData)  := {
				colourCode := p_cc,
				frameNumber := e_frame2,
				calledIdLP := p_calledIdLP,
		   		communicationsMode := e_dataT1,
		   		communicationsMode := p_commsMode,
		        commsFormat := ?,
		        reserved2bit := c_reserved2bits,
		        slowData := ?,
		        slowData := p_slowData,
		        payload := ?
			} // end template mw_frame2Voice
			} // end template mw_frame2dataT1orT2
 

		  	template Frame3 mw_frame3dataT1 ( OwnIdUP p_ownIdUP )  := {
		  	template Frame3 mw_frame3dataT1orT2 ( 	OwnIdUP p_ownIdUP, 
													in template CommunicationsMode p_commsMode,
													in template SlowData p_slowData)  := {
				frameSync := c_fs2,
				frameNumber := e_frame3,
				ownIdUP := p_ownIdUP,
		   		communicationsMode := e_dataT1,
		   		communicationsMode := p_commsMode,
		        commsFormat := ?,
		        reserved2bit := c_reserved2bits,
		        slowData := ?,
		        slowData := p_slowData,
		        payload := ?
			} // end template mw_frame3Voice
			} // end template mw_frame3dataT1orT2


		  	template Frame4 mw_frame4dataT1 ( OwnIdLP p_ownIdLP, ColourCode p_cc)  := {
		  	template Frame4 mw_frame4dataT1orT2 ( 	ColourCode p_cc,
													OwnIdLP p_ownIdLP,
													in template CommunicationsMode p_commsMode,
													in template SlowData p_slowData)  := {
				colourCode := p_cc,
				frameNumber := e_frame4,
				ownIdLP := p_ownIdLP,
		   		communicationsMode := e_dataT1,
		   		communicationsMode := p_commsMode,
		        commsFormat := ?,
		        reserved2bit := c_reserved2bits,
		        slowData := ?,
		        slowData := p_slowData,
		        payload := ?
			} // end template mw_frame4Voice
			} // end template mw_frame4dataT1orT2

		} // end Group T1T2DataFrameGroup

+241 −23
Original line number Diff line number Diff line
@@ -161,9 +161,9 @@ module dPMR_TestCases {
				f_cfMseUp(v_mse, v_ut);

				//Test body  
				v_mse.start(f_TC_voiceWithAutomaticConnectionRequestTx_MS01());
				v_mse.start(f_TC_voiceWithAutomaticConnectionRequestOnlyCheckFramesTx_MS01());
				v_ut.start(f_TC_msAction_UT(m_commandCSF_utRequest(	c_defaultPeerToPeerDialString , 
																	e_makeVoiceWithAutmaticConnectionRequest)));
																	e_makeOACSUCall)));

				

@@ -867,8 +867,68 @@ module dPMR_TestCases {
		} // end group DialingPlan
		group IndividualShortDataMessage { // Clause 5.2.3
			group ISDM_FreeTestMessage {// Clause 5.2.3.1

				/**
				* t2 data transmission ISDM Free text message
				*/
				testcase TC_PMR_0852_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_T1orT2DataTx_MS01(
									e_dataT2,
									mw_slowData(?,e_freeTextMessage,?,?)));
					v_ut.start(f_TC_msAction_UT(
									m_commandCSF_utRequest(	c_defaultPeerToPeerDialString , 
															e_makeT2DataCallWithFreeTextMessage)));

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

					// Configuration Down
					f_cfMseDown(v_mse, v_ut);

				} // end TC_PMR_0852_01

			} // end group ISDM_FreeTestMessage
			group ISDM_PrecodedMessage {// Clause 5.2.3.2

				/**
				* T2 data transmission ISDM Precoded message
				*/
				testcase TC_PMR_0851_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_T1orT2DataTx_MS01(
									e_dataT2,
									mw_slowData(?,e_precodedMessage,?,?)));
					v_ut.start(f_TC_msAction_UT(
									m_commandCSF_utRequest(	c_defaultPeerToPeerDialString , 
															e_makeT2DataCallWithFreeTextMessage)));

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

					// Configuration Down
					f_cfMseDown(v_mse, v_ut);

				} // end TC_PMR_0851_01

			} // end group ISDM_PrecodedMessage
			group ISDM_ShortFileTransfer {// Clause 5.2.3.3
			} // end group ISDM_ShortFileTransfer
@@ -876,6 +936,34 @@ module dPMR_TestCases {
			} // end group ISDM_StatusMessage
		} // end group IndividualShortDataMessage
		group OACSU { // Clause 5.2.4

			/**
			* header and end frame in automatic connection request
			*/
			testcase TC_PMR_0840_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_voiceWithAutomaticConnectionRequestTx_MS01());
				v_ut.start(f_TC_msAction_UT(m_commandCSF_utRequest(	c_defaultPeerToPeerDialString , 
																	e_makeOACSUCall)));

				

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

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

		} // end group OACSU
		group ShortAppendedData { // Clause 5.2.5
		} // end group ShortAppendedData
@@ -1153,27 +1241,27 @@ module dPMR_TestCases {
									m_superFrame( 
										m_frame1T1Data(	vc_mse.testerIdUP, 
														m_T1Payload(PXT_DATA_T1_F1),
														m_slowDataT1Data(	e_DataInFrame,
														m_slowData(	e_DataInFrame,
																	e_shortFileTransfer,
																	e_continueAfterFrame,
																	PXT_DATA_T1_F1_length)),
										m_frame2T1Data(	vc_mse.testerIdLP, 
														m_T1Payload(PXT_DATA_T1_F2), 
														vc_mse.colourCode,
														m_slowDataT1Data(	e_DataInFrame,
														m_slowData(	e_DataInFrame,
																	e_shortFileTransfer,
																	e_continueAfterFrame,
																	PXT_DATA_T1_F2_length)),
										m_frame3T1Data(	vc_mse.iutIdUP, 
														m_T1Payload(PXT_DATA_T1_F3),
														m_slowDataT1Data(	e_DataInFrame,
														m_slowData(	e_DataInFrame,
																	e_shortFileTransfer,
																	e_continueAfterFrame,
																	PXT_DATA_T1_F3_length)),
										m_frame4T1Data(	vc_mse.iutIdLP, 
														m_T1Payload(PXT_DATA_T1_F4),
														vc_mse.colourCode,
														m_slowDataT1Data(	e_DataInFrame,
														m_slowData(	e_DataInFrame,
																	e_shortFileTransfer,
																	e_finishAfterFrame,
																	PXT_DATA_T1_F4_length)))),
@@ -1645,6 +1733,51 @@ module dPMR_TestCases {

		} // 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,
		*/
		function f_TC_voiceWithAutomaticConnectionRequestOnlyCheckFramesTx_MS01 (  )
		runs on Mse {
			// Variables
			var FncRetCode v_ret := e_success;
			var UInt16 v_sfCount := 0;
			var default v_defvar;

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

			//Preamble
			f_clientSyncAndVerdict(c_prDone, v_ret);

			//Test Body

			tc_ac.start ; 
			alt {
			[]	dp1Port.receive(m_callSetUpOrServiceRequest(
										m_headerFrame(?,vc_mse.colourCode),
										m_endFrame(?)))
				{
					// got the connection request
					tc_ac.stop ;
					setverdict(pass);
				}
			[] tc_ac.timeout
				{
					log("**** f_TC_VoiceWithAutomaticConnectionRequestTx_MS01: Timeout: TC Timer expiration before reception of Connection Request ****");
					setverdict(fail);	
				}
			} // end alt

			f_clientSyncAndVerdict(c_tbDone, v_ret);

			deactivate;

		} // end function f_TC_voiceWithAutomaticConnectionRequestTx_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,
@@ -1725,15 +1858,29 @@ module dPMR_TestCases {
											mw_headerInformationTx(
												vc_mse.testerId, 
												vc_mse.iutId, 
												e_voice, 
												e_dataT1, 
												e_p2p),
					                    	vc_mse.colourCode),
										mw_superFrameList_OneOrManyElem(
											m_superFrame(
												mw_frame1Voice(vc_mse.testerIdUP ),
				            		       		mw_frame2Voice(vc_mse.testerIdLP, vc_mse.colourCode),
												mw_frame3Voice(vc_mse.iutIdUP),
												mw_frame4Voice(vc_mse.iutIdLP,vc_mse.colourCode))),
												mw_frame1dataT1orT2(
														vc_mse.testerIdUP,
														e_dataT1,
														mw_slowData(?,?,?,?)),
												mw_frame2dataT1orT2(
														vc_mse.colourCode,
														vc_mse.testerIdLP,
														e_dataT1,
														mw_slowData(?,?,?,?)),
												mw_frame3dataT1orT2(
														vc_mse.iutIdUP,
														e_dataT1,
														mw_slowData(?,?,?,?)),
												mw_frame4dataT1orT2(
														vc_mse.colourCode,
														vc_mse.iutIdLP,
														e_dataT1,
														mw_slowData(?,?,?,?)))),
										m_endFrame(mw_endInformation(e_noAckReq)))) 
 				{
					// received correctly
@@ -1764,6 +1911,77 @@ module dPMR_TestCases {

		} // end function f_TC_T1DataWithAutomaticDisconnectionRequestTx_MS01

		/**
		* @desc	receive data on T1 or T23 transmission from the MS (IUT) , check that SLD fields ok
		*/
		function f_TC_T1orT2DataTx_MS01 ( 	CommunicationsMode p_commMode,
											in template SlowData p_slowData)
		runs on Mse {
			// Variables
			var FncRetCode v_ret := e_success;
			var UInt16 v_sfCount := 0;
			var default v_defvar;


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

			//Preamble
			f_clientSyncAndVerdict(c_prDone, v_ret);

			//Test Body
			tc_ac.start ;
			alt {
				[] dp1Port.receive(	m_voiceorT1orT2PayloadTransmission(
										m_headerFrame(
											mw_headerInformationTx(
												vc_mse.testerId, 
												vc_mse.iutId, 
												p_commMode, 
												e_p2p),
					                    	vc_mse.colourCode),
										mw_superFrameList_OneOrManyElem(
											m_superFrame(
												mw_frame1dataT1orT2(
														vc_mse.testerIdUP,
														p_commMode,
														p_slowData),
												mw_frame2dataT1orT2(
														vc_mse.colourCode,
														vc_mse.testerIdLP,
														p_commMode,
														p_slowData),
												mw_frame3dataT1orT2(
														vc_mse.iutIdUP,
														p_commMode,
														p_slowData),
												mw_frame4dataT1orT2(
														vc_mse.colourCode,
														vc_mse.iutIdLP,
														p_commMode,
														p_slowData))),
										m_endFrame(mw_endInformation(e_noAckReq)))) 
 				{
					// received correctly
					tc_ac.stop;
					setverdict(pass);
				}
			  [] tc_ac.timeout
			  	{
					log("**** f_TC_T1orT2DataTx_MS01: Timeout: TC Timer expiration before reception of complete Voice transmission ****");
					setverdict(fail);	
				}
			} // end alt
		
			f_clientSyncAndVerdict(c_tbDone, v_ret);

			deactivate;

		} // end function f_TC_T1orT2DataTx_MS01

		/**
		* @desc	Check that a data on T1 transmission from the MS (IUT) consists of 
		*		a Header Frame containing the Communication Mode set to '010b'
+12 −3
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ module dPMR_TestExecution {

			if ((PIC_ISF_OR_CSF == e_csf) and 
				PIC_AUTOMATIC_CONNECTION_REQUEST and
				PIC_CSF_VOICE_SUPPORT) 					{execute(TC_PMR_0405_02() );}
				PIC_CSF_VOICE_SUPPORT and PIC_CSF_VOICE_SS_OACSU) 	{execute(TC_PMR_0405_02() );}

			if ((PIC_ISF_OR_CSF == e_csf) and PIC_CSF_VOICE_SUPPORT) {execute(TC_PMR_0406_01() );} //TODO remark that voice support is perhaps optional according to Pete

@@ -92,8 +92,14 @@ module dPMR_TestExecution {
		//	} // end group DialingPlan
		//	group IndividualShortDataMessage { // Clause 5.2.3
		//		group ISDM_FreeTestMessage {// Clause 5.2.3.1

				if (PIC_CSF_T2Data_SS_GROUP_FREETEXT_MESSAGE) {execute(TC_PMR_0852_01() );} 

		//		} // end group ISDM_FreeTestMessage
		//		group ISDM_PrecodedMessage {// Clause 5.2.3.2

				if (PIC_CSF_T2Data_SS_GROUP_PRECODED_MESSAGE) {execute(TC_PMR_0851_01() );} 

		//		} // end group ISDM_PrecodedMessage
		//		group ISDM_ShortFileTransfer {// Clause 5.2.3.3
		//		} // end group ISDM_ShortFileTransfer
@@ -101,6 +107,9 @@ module dPMR_TestExecution {
		//		} // end group ISDM_StatusMessage
		//	} // end group IndividualShortDataMessage
		//	group OACSU { // Clause 5.2.4

				if (PIC_CSF_VOICE_SS_OACSU) {execute(TC_PMR_0840_01() );}

		//	} // end group OACSU
		//	group ShortAppendedData { // Clause 5.2.5
		//	} // end group ShortAppendedData
@@ -118,8 +127,8 @@ module dPMR_TestExecution {
		execute(TC_PMR_0801_01(  ) );

		
		if (PIC_ISF_OR_CSF == e_csf
			and PIC_CSF_VOICE_SS_OACSU) {execute(TC_PMR_0405_02(  ) );}
//		if (PIC_ISF_OR_CSF == e_csf
//			and PIC_CSF_VOICE_SS_OACSU) {execute(TC_PMR_0405_02(  ) );}


// TODO TO BE DONE
+4 −2
Original line number Diff line number Diff line
@@ -528,7 +528,7 @@ module dPMR_Types {
		   	e_testToneNotReceived (3) ,		//Have you NOT heard a test tone?
			
			e_makeManualConnectionRequest (4), // Make a manual Connection Request
			e_makeVoiceWithAutmaticConnectionRequest (5), // Make a voice with Automatic Connection Request
			e_makeOACSUCall (5), // Make a voice with Automatic Connection Request
			e_makeManualDisconnectionRequest (6), // Make a manual Disconnection Request
			e_makeT1DataWithAutomaticDisconnectionRequest (7), // Make a T1 data with Automatic Disconnection Request
			e_makeT1DataCall (8), // Make a T1 data call
@@ -538,7 +538,9 @@ module dPMR_Types {
			e_enableTalkingPartyIDAndCheckThatTESTER_IdIsPresented (12), // check that the incoming call have the TESTER ID displayed (CSF:address or ISF:COMMON_ID)
			e_makeABroadcastCall (13), // Make a Broadcast call (All Call)
			e_enterDialStrinDoNotPressSendOrHash (14), // enter the dialstring, but dont press send or "#"
			e_enterDialStringAndPressSendKeyOrHash (15) // enter the dialstring, then press send or "#"
			e_enterDialStringAndPressSendKeyOrHash (15), // enter the dialstring, then press send or "#"
			e_makeT2DataCallWithFreeTextMessage (16), // Make a dataCall with a Free Text Message
			e_makeT2DataCallWithAPrecodedMessage (17) // Make a dataCall with a Free Text Message
		}

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