Loading ttcn/dPMR_Pics.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -624,7 +624,7 @@ module dPMR_Pics { modulepar {boolean PIC_AUTOMATIC_CONNECTION_REQUEST := true} /** * @desc Is the Manual Disconnection Request support * @desc Is the Manual Disconnection Request supported? */ modulepar {boolean PIC_MANUAL_DISCONNECTION_REQUEST := true} Loading ttcn/dPMR_Templates.ttcn +41 −24 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ endFrame := p_endFrame } // end template m_payloadTransmission template PacketDataTransmission m_T3DataPayloadTransmission ( template PacketDataHeader p_packetDataHeaderFrame , template PacketDataFrameList p_packetDataFrameList , template EndFrame p_endFrame ) := { Loading @@ -71,7 +72,6 @@ p_superFrame,p_superFrame,p_superFrame,p_superFrame } // TODO JP Mantis: question if HE is allowed as voice burst template SuperFrameList mw_superFrameList_OneOrManyElem ( template SuperFrame p_superFrame) := superset ( p_superFrame ); Loading Loading @@ -400,17 +400,6 @@ } // end template m_endInformationNoAck // template EndFrame m_endFrameAck := { // frameSync3 := c_fs3, // endInformation0 := m_endInformationAck, // endInformation1 := m_endInformationAck // } // end template m_endFrameAck // template EndFrame m_endFrameNoAck := { // frameSync3 := c_fs3, // endInformation0 := m_endInformationNoAck, // endInformation1 := m_endInformationNoAck // } // end template m_endFrameNoAck template EndFrame m_endFrame ( in template EndInformation p_endInfo ) := { frameSync3 := c_fs3, Loading @@ -437,18 +426,6 @@ ciInformationNormalOrPws :=c_ciInformationNormal } } // end m_headerInformation /* type record PacketDataHeaderInformation { HeaderType headerType, MsAddress calledId, MsAddress ownId, CommunicationsMode communicationsMode, CommsFormat commsFormat, Reserved2bit reserved2bit, CallInformation callInformation } */ template PacketDataHeaderInformation m_packetDataHeaderInformation(HeaderType p_hdrTp, MsAddress p_calledId , Loading Loading @@ -518,6 +495,45 @@ } //end group InformationElementTemplates group Powersave { template PayloadTransmission m_voiceorT1orT2PayloadTransmissionPowersave ( template ExtendedHdrFrameList p_extHdrFrameList , template HeaderFrame p_headerFrame , template SuperFrameList p_superFrameList , template EndFrame p_endFrame ) := { extHdrFrameList := p_extHdrFrameList , headerFrame := p_headerFrame , sfList := p_superFrameList , endFrame := p_endFrame } // end template m_payloadTransmissionPowersave template ExtendedHdrFrameList mw_extHeaderFrameList ( template HeaderFrame p_headerFrame) := superset ( p_headerFrame ); template HeaderInformation mw_extHeaderInformationTx ( MsAddress p_calledId , MsAddress p_ownId, template CommunicationsMode p_commMode, template CommsFormat p_commFormat, template CiInformationNormalOrPws p_callInformation ) := { headerType := e_commStartHeader, calledId := p_calledId, ownId := p_ownId, communicationsMode := p_commMode, commsFormat := p_commFormat, reserved2bit := c_reserved2bits, callInformation := { ciInformationNormalOrPws :=p_callInformation } } // end mw_headerInformationVoiceTx template CiInformationNormalOrPws mw_extHeaderCallInformation := { ciTypeNormalOrPws := e_extendWakeupHdr, ciInfoNormalOrPws := ? } } // end group Powersave template ISFAddress m_isfAddrFromCommonId( Common_ID p_cid ) := { common_ID := p_cid, fixedPart := c_fixedPartAddr Loading @@ -525,6 +541,7 @@ group ConfigurationTemplates { template UtRequest m_sendSomeT3Data_utRequest( in template DialString p_dialString, Loading ttcn/dPMR_TestCases.ttcn +430 −132 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ module dPMR_TestCases { // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0824_01 } // end TC_PMR_0824_03 } // end group AllCall Loading Loading @@ -223,7 +223,7 @@ module dPMR_TestCases { // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0405_02 } // end TC_PMR_0406_02 /** * Loading @@ -250,7 +250,7 @@ module dPMR_TestCases { // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0405_01 } // end TC_PMR_0407_01 /** * Loading Loading @@ -279,7 +279,7 @@ module dPMR_TestCases { // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0406_01 } // end TC_PMR_0407_02 /** * Loading Loading @@ -336,6 +336,7 @@ module dPMR_TestCases { }// end group HeaderFrames group GroupSuperFrame { // Clause 5.1.3.4 group typeT1Data { // Clause 5.1.3.4.1 Loading Loading @@ -434,6 +435,8 @@ module dPMR_TestCases { } // end TC_PMR_0801_01 } // end group Voice } // end group GroupSuperFrame } // end group Framing group LateEntry { // Clause 5.1.4 Loading Loading @@ -550,13 +553,146 @@ module dPMR_TestCases { } // end group LateEntry group Powersave {// Clause 5.1.5 } // end group GroupSuperFrame testcase TC_PMR_1101_01( ) runs on ServerSyncComp system TestAdapter { var Mse v_mse; var Ut v_ut; var FncRetCode v_ret := e_success; } // end group Framing //Configuration Up f_cfMseUp(v_mse, v_ut); //Test body v_mse.start(f_TC_voiceTxCheckPowerSavePreambleAndCallInfoExtHeader_MS01()); if (PIC_ISF_OR_CSF == e_isf) { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( omit , c_defaultCommonId, e_makeMSPowersaveAndPressPtt))); } else { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( c_defaultCallGroup, omit , e_makeMSPowersaveAndPressPtt))); } } // end group HeaderFrames // synchronize both PTCs f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_1101_01 testcase TC_PMR_1102_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_voiceTxCheckPowerSavePreambleAndCallInfoExtHeader_MS01()); if (PIC_ISF_OR_CSF == e_isf) { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( omit , c_defaultCommonId, e_makeMSPowersaveAndPressPtt))); } else { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( c_defaultCallGroup, omit , e_makeMSPowersaveAndPressPtt))); } // synchronize both PTCs f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_1102_01 testcase TC_PMR_1103_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_voiceTxCheckPowersaveCallInfoExtHeaders15_MS01()); if (PIC_ISF_OR_CSF == e_isf) { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( omit , c_defaultCommonId, e_makeMSPowersave15ExtHdrsAndPressPtt))); } else { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( c_defaultCallGroup, omit , e_makeMSPowersave15ExtHdrsAndPressPtt))); } // synchronize both PTCs f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_1102_01 } // end group Powersave group TalkingParty_ID {// Clause 5.1.6 } // end group TalkingParty_ID } // end group IsfCsfCommon group CSF_only {// Clause 5.2 group BroadcastCall { // Clause 5.2.1 } // end group BroadcastCall group DialingPlan { // Clause 5.2.2 } // end group DialingPlan group IndividualShortDataMessage { // Clause 5.2.3 group ISDM_FreeTestMessage {// Clause 5.2.3.1 } // end group ISDM_FreeTestMessage group ISDM_PrecodedMessage {// Clause 5.2.3.2 } // end group ISDM_PrecodedMessage group ISDM_ShortFileTransfer {// Clause 5.2.3.3 } // end group ISDM_ShortFileTransfer group ISDM_StatusMessage {// Clause 5.2.3.4 } // end group ISDM_StatusMessage } // end group IndividualShortDataMessage group OACSU { // Clause 5.2.4 } // end group OACSU group ShortAppendedData { // Clause 5.2.5 } // end group ShortAppendedData group SlowUserData { // Clause 5.2.6 } // end group SlowUserData group Type3Data { // Clause 5.2.7 } // end group Type3Data } // end group CSF_only group ISF_only {// Clause 5.3 } // end group ISF_only group commonTCFunctions { Loading Loading @@ -833,6 +969,168 @@ module dPMR_TestCases { } // end function f_TC_voiceTx_MS01 /** * @desc Check that a voice transmission from the Powersaved MS (IUT) consists of extHeaders, a Header Frame, a list of * Super Frames, and an End Frame, with Preable correct and CI type set to '111' */ function f_TC_voiceTxCheckPowerSavePreambleAndCallInfoExtHeader_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_voiceorT1orT2PayloadTransmissionPowersave( mw_extHeaderFrameList( m_headerFrame( mw_extHeaderInformationTx( vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p, mw_extHeaderCallInformation), vc_mse.colourCode)), m_headerFrame( mw_headerInformationTx( vc_mse.testerId, vc_mse.iutId, e_voice, 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))), m_endFrame(mw_endInformation(e_noAckReq)))) { // received correctly tc_ac.stop ; setverdict(pass); } [] tc_ac.timeout { log("**** f_TC_voiceTx_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_voiceTxCheckPowerSavePreamble_MS01 /** * @desc Check that a voice transmission from the powersaved 15 exthdrs * enabled MS (IUT) consists of a 15 exthdrs,Header Frame, a list of * Super Frames, and an End Frame, */ function f_TC_voiceTxCheckPowersaveCallInfoExtHeaders15_MS01 ( ) runs on Mse{ // Variables var FncRetCode v_ret := e_success; var UInt16 v_sfCount := 0; var default v_defvar; var PayloadTransmission v_payloadTransmission; var HeaderInformation v_headerInfo; var boolean v_testCaseOk; //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_voiceorT1orT2PayloadTransmissionPowersave( mw_extHeaderFrameList( m_headerFrame( mw_extHeaderInformationTx( vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p, mw_extHeaderCallInformation), vc_mse.colourCode)), m_headerFrame( mw_headerInformationTx( vc_mse.testerId, vc_mse.iutId, e_voice, 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))), m_endFrame(mw_endInformation(e_noAckReq)))) -> value v_payloadTransmission { // received correctly tc_ac.stop ; // check there are 15 extheaders if (sizeof(v_payloadTransmission.extHdrFrameList) != 15) { log("**** f_TC_voiceTxCheckPowerCallInfoExtHeaders15_MS01: 15 extended headers not received ****"); setverdict(fail); } else { // received 15 ok, lets check they are decreasing //TODO JP should we consider headerInformation1 as well? v_testCaseOk := true; v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[0].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame15); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[1].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame14); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[2].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame13); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[3].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame12); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[4].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame11); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[5].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame10); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[6].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame9); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[7].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame8); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[8].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame7); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[9].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame6); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[10].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame5); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[11].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame4); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[12].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame3); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[13].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame2); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[14].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame1); if (not v_testCaseOk) { log("**** f_TC_voiceTxCheckPowerCallInfoExtHeaders15_MS01: The 15 extended headers received were not in exact decreasing order. ****"); setverdict(fail); } setverdict(pass); } } [] tc_ac.timeout { log("**** f_TC_voiceTxCheckPowerCallInfoExtHeaders15_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_voiceTxCheckPowersaveCallInfoExtHeaders15_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, Check the Communicationsmode and the Communications Format Loading Loading @@ -1280,7 +1578,7 @@ module dPMR_TestCases { } // end function f_TC_disconnectionRequestTx_MS01 }//end commonTCFunctions }//end group commonTCFunctions group ut_TC_Functions { Loading ttcn/dPMR_TestConfiguration.ttcn +3 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,9 @@ module dPMR_TestConfiguration { group configFns { /* * @remark This function implements the CF_dPMR_01 configuration */ function f_cfMseUp( out Mse p_mse, out Ut p_ut) Loading ttcn/dPMR_TestExecution.ttcn +86 −2 Original line number Diff line number Diff line Loading @@ -18,8 +18,92 @@ module dPMR_TestExecution { control{ // Group: TODO grouping with comments-way if (PIC_ISF_OR_CSF == e_isf) {execute(TC_PMR_0824_01( ) );} // group IsfCsfCommon { // Clause 5.1 // group AllCall { // Clause 5.1.1 if ((PIC_ISF_OR_CSF == e_isf) and PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_0824_01() );} if ((PIC_ISF_OR_CSF == e_isf) and PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_0824_03() );} // Group ChannelAccess // group Framing {// Clause 5.1.3 if (PIC_CSF_VOICE_SUPPORT or PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_0401_01() );} if ((PIC_ISF_OR_CSF == e_csf) and PIC_MANUAL_CONNECTION_REQUEST) {execute(TC_PMR_0405_01() );} if ((PIC_ISF_OR_CSF == e_csf) and PIC_AUTOMATIC_CONNECTION_REQUEST and PIC_CSF_VOICE_SUPPORT) {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 if ((PIC_ISF_OR_CSF == e_csf) and PIC_CSF_TYPE_1_DATA_SUPPORT) {execute(TC_PMR_0406_02() );} if ((PIC_ISF_OR_CSF == e_csf) and PIC_MANUAL_DISCONNECTION_REQUEST) {execute(TC_PMR_0407_01() );} if ((PIC_ISF_OR_CSF == e_csf) and PIC_CSF_TYPE_1_DATA_SUPPORT and PIC_AUTOMATIC_DISCONNECTION_REQUEST) {execute(TC_PMR_0407_02() );} if ((PIC_ISF_OR_CSF == e_csf) and PIC_CSF_VOICE_SUPPORT) {execute(TC_PMR_0811_01() );} // TODO JP perhaps change this to 0811_XX to loop through all colour codes // group HeaderFrames { // Clause 5.1.3.2 if ((PIC_ISF_OR_CSF == e_csf) and PIC_CSF_TYPE_3_DATA_SUPPORT) {execute(TC_PMR_0816_01() );} // }// end group HeaderFrames // group GroupSuperFrame { // Clause 5.1.3.4 // group typeT1Data { // Clause 5.1.3.4.1 if (PIC_CSF_TYPE_1_DATA_SUPPORT) {execute(TC_PMR_0807_01() );} // } // end group typeT1Data // group typeT2Data { // Clause 5.1.3.4.1 if (PIC_CSF_TYPE_2_DATA_SUPPORT) {execute(TC_PMR_0806_01() );} // } // end group typeT2Data // group Voice { // Clause 5.1.3.4.3 // } // end group Voice // } // end group GroupSuperFrame // } // end group Framing // group LateEntry { // Clause 5.1.4 if (PIC_CSF_VOICE_SS_LATE_ENTRY or PIC_ISF_LATE_ENTRY) {execute(TC_PMR_0802_01() );} if (PIC_CSF_VOICE_SS_LATE_ENTRY or PIC_ISF_LATE_ENTRY) {execute(TC_PMR_0802_02() );} if (PIC_CSF_VOICE_SS_LATE_ENTRY or PIC_ISF_LATE_ENTRY) {execute(TC_PMR_0802_03() );} // } // end group LateEntry // group Powersave {// Clause 5.1.5 if (PIC_CSF_VOICE_SUPPORT or PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_1101_01() );} if (PIC_CSF_VOICE_SUPPORT or PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_1102_01() );} if (PIC_CSF_VOICE_SUPPORT or PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_1103_01() );} // } // end group Powersave // group TalkingParty_ID {// Clause 5.1.6 // } // end group TalkingParty_ID //} // end group IsfCsfCommon //group CSF_only {// Clause 5.2 // group BroadcastCall { // Clause 5.2.1 // } // end group BroadcastCall // group DialingPlan { // Clause 5.2.2 // } // end group DialingPlan // group IndividualShortDataMessage { // Clause 5.2.3 // group ISDM_FreeTestMessage {// Clause 5.2.3.1 // } // end group ISDM_FreeTestMessage // group ISDM_PrecodedMessage {// Clause 5.2.3.2 // } // end group ISDM_PrecodedMessage // group ISDM_ShortFileTransfer {// Clause 5.2.3.3 // } // end group ISDM_ShortFileTransfer // group ISDM_StatusMessage {// Clause 5.2.3.4 // } // end group ISDM_StatusMessage // } // end group IndividualShortDataMessage // group OACSU { // Clause 5.2.4 // } // end group OACSU // group ShortAppendedData { // Clause 5.2.5 // } // end group ShortAppendedData // group SlowUserData { // Clause 5.2.6 // } // end group SlowUserData // group Type3Data { // Clause 5.2.7 // } // end group Type3Data //} // end group CSF_only //group ISF_only {// Clause 5.3 //} // end group ISF_only if (PIC_ISF_OR_CSF == e_csf) {execute( TC_PMR_0406_01() );} // Group: execute(TC_PMR_0801_01( ) ); Loading Loading
ttcn/dPMR_Pics.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -624,7 +624,7 @@ module dPMR_Pics { modulepar {boolean PIC_AUTOMATIC_CONNECTION_REQUEST := true} /** * @desc Is the Manual Disconnection Request support * @desc Is the Manual Disconnection Request supported? */ modulepar {boolean PIC_MANUAL_DISCONNECTION_REQUEST := true} Loading
ttcn/dPMR_Templates.ttcn +41 −24 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ endFrame := p_endFrame } // end template m_payloadTransmission template PacketDataTransmission m_T3DataPayloadTransmission ( template PacketDataHeader p_packetDataHeaderFrame , template PacketDataFrameList p_packetDataFrameList , template EndFrame p_endFrame ) := { Loading @@ -71,7 +72,6 @@ p_superFrame,p_superFrame,p_superFrame,p_superFrame } // TODO JP Mantis: question if HE is allowed as voice burst template SuperFrameList mw_superFrameList_OneOrManyElem ( template SuperFrame p_superFrame) := superset ( p_superFrame ); Loading Loading @@ -400,17 +400,6 @@ } // end template m_endInformationNoAck // template EndFrame m_endFrameAck := { // frameSync3 := c_fs3, // endInformation0 := m_endInformationAck, // endInformation1 := m_endInformationAck // } // end template m_endFrameAck // template EndFrame m_endFrameNoAck := { // frameSync3 := c_fs3, // endInformation0 := m_endInformationNoAck, // endInformation1 := m_endInformationNoAck // } // end template m_endFrameNoAck template EndFrame m_endFrame ( in template EndInformation p_endInfo ) := { frameSync3 := c_fs3, Loading @@ -437,18 +426,6 @@ ciInformationNormalOrPws :=c_ciInformationNormal } } // end m_headerInformation /* type record PacketDataHeaderInformation { HeaderType headerType, MsAddress calledId, MsAddress ownId, CommunicationsMode communicationsMode, CommsFormat commsFormat, Reserved2bit reserved2bit, CallInformation callInformation } */ template PacketDataHeaderInformation m_packetDataHeaderInformation(HeaderType p_hdrTp, MsAddress p_calledId , Loading Loading @@ -518,6 +495,45 @@ } //end group InformationElementTemplates group Powersave { template PayloadTransmission m_voiceorT1orT2PayloadTransmissionPowersave ( template ExtendedHdrFrameList p_extHdrFrameList , template HeaderFrame p_headerFrame , template SuperFrameList p_superFrameList , template EndFrame p_endFrame ) := { extHdrFrameList := p_extHdrFrameList , headerFrame := p_headerFrame , sfList := p_superFrameList , endFrame := p_endFrame } // end template m_payloadTransmissionPowersave template ExtendedHdrFrameList mw_extHeaderFrameList ( template HeaderFrame p_headerFrame) := superset ( p_headerFrame ); template HeaderInformation mw_extHeaderInformationTx ( MsAddress p_calledId , MsAddress p_ownId, template CommunicationsMode p_commMode, template CommsFormat p_commFormat, template CiInformationNormalOrPws p_callInformation ) := { headerType := e_commStartHeader, calledId := p_calledId, ownId := p_ownId, communicationsMode := p_commMode, commsFormat := p_commFormat, reserved2bit := c_reserved2bits, callInformation := { ciInformationNormalOrPws :=p_callInformation } } // end mw_headerInformationVoiceTx template CiInformationNormalOrPws mw_extHeaderCallInformation := { ciTypeNormalOrPws := e_extendWakeupHdr, ciInfoNormalOrPws := ? } } // end group Powersave template ISFAddress m_isfAddrFromCommonId( Common_ID p_cid ) := { common_ID := p_cid, fixedPart := c_fixedPartAddr Loading @@ -525,6 +541,7 @@ group ConfigurationTemplates { template UtRequest m_sendSomeT3Data_utRequest( in template DialString p_dialString, Loading
ttcn/dPMR_TestCases.ttcn +430 −132 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ module dPMR_TestCases { // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0824_01 } // end TC_PMR_0824_03 } // end group AllCall Loading Loading @@ -223,7 +223,7 @@ module dPMR_TestCases { // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0405_02 } // end TC_PMR_0406_02 /** * Loading @@ -250,7 +250,7 @@ module dPMR_TestCases { // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0405_01 } // end TC_PMR_0407_01 /** * Loading Loading @@ -279,7 +279,7 @@ module dPMR_TestCases { // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0406_01 } // end TC_PMR_0407_02 /** * Loading Loading @@ -336,6 +336,7 @@ module dPMR_TestCases { }// end group HeaderFrames group GroupSuperFrame { // Clause 5.1.3.4 group typeT1Data { // Clause 5.1.3.4.1 Loading Loading @@ -434,6 +435,8 @@ module dPMR_TestCases { } // end TC_PMR_0801_01 } // end group Voice } // end group GroupSuperFrame } // end group Framing group LateEntry { // Clause 5.1.4 Loading Loading @@ -550,13 +553,146 @@ module dPMR_TestCases { } // end group LateEntry group Powersave {// Clause 5.1.5 } // end group GroupSuperFrame testcase TC_PMR_1101_01( ) runs on ServerSyncComp system TestAdapter { var Mse v_mse; var Ut v_ut; var FncRetCode v_ret := e_success; } // end group Framing //Configuration Up f_cfMseUp(v_mse, v_ut); //Test body v_mse.start(f_TC_voiceTxCheckPowerSavePreambleAndCallInfoExtHeader_MS01()); if (PIC_ISF_OR_CSF == e_isf) { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( omit , c_defaultCommonId, e_makeMSPowersaveAndPressPtt))); } else { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( c_defaultCallGroup, omit , e_makeMSPowersaveAndPressPtt))); } } // end group HeaderFrames // synchronize both PTCs f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_1101_01 testcase TC_PMR_1102_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_voiceTxCheckPowerSavePreambleAndCallInfoExtHeader_MS01()); if (PIC_ISF_OR_CSF == e_isf) { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( omit , c_defaultCommonId, e_makeMSPowersaveAndPressPtt))); } else { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( c_defaultCallGroup, omit , e_makeMSPowersaveAndPressPtt))); } // synchronize both PTCs f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_1102_01 testcase TC_PMR_1103_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_voiceTxCheckPowersaveCallInfoExtHeaders15_MS01()); if (PIC_ISF_OR_CSF == e_isf) { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( omit , c_defaultCommonId, e_makeMSPowersave15ExtHdrsAndPressPtt))); } else { v_ut.start(f_TC_msAction_UT( m_commandISFCSF_utRequest( c_defaultCallGroup, omit , e_makeMSPowersave15ExtHdrsAndPressPtt))); } // synchronize both PTCs f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_1102_01 } // end group Powersave group TalkingParty_ID {// Clause 5.1.6 } // end group TalkingParty_ID } // end group IsfCsfCommon group CSF_only {// Clause 5.2 group BroadcastCall { // Clause 5.2.1 } // end group BroadcastCall group DialingPlan { // Clause 5.2.2 } // end group DialingPlan group IndividualShortDataMessage { // Clause 5.2.3 group ISDM_FreeTestMessage {// Clause 5.2.3.1 } // end group ISDM_FreeTestMessage group ISDM_PrecodedMessage {// Clause 5.2.3.2 } // end group ISDM_PrecodedMessage group ISDM_ShortFileTransfer {// Clause 5.2.3.3 } // end group ISDM_ShortFileTransfer group ISDM_StatusMessage {// Clause 5.2.3.4 } // end group ISDM_StatusMessage } // end group IndividualShortDataMessage group OACSU { // Clause 5.2.4 } // end group OACSU group ShortAppendedData { // Clause 5.2.5 } // end group ShortAppendedData group SlowUserData { // Clause 5.2.6 } // end group SlowUserData group Type3Data { // Clause 5.2.7 } // end group Type3Data } // end group CSF_only group ISF_only {// Clause 5.3 } // end group ISF_only group commonTCFunctions { Loading Loading @@ -833,6 +969,168 @@ module dPMR_TestCases { } // end function f_TC_voiceTx_MS01 /** * @desc Check that a voice transmission from the Powersaved MS (IUT) consists of extHeaders, a Header Frame, a list of * Super Frames, and an End Frame, with Preable correct and CI type set to '111' */ function f_TC_voiceTxCheckPowerSavePreambleAndCallInfoExtHeader_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_voiceorT1orT2PayloadTransmissionPowersave( mw_extHeaderFrameList( m_headerFrame( mw_extHeaderInformationTx( vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p, mw_extHeaderCallInformation), vc_mse.colourCode)), m_headerFrame( mw_headerInformationTx( vc_mse.testerId, vc_mse.iutId, e_voice, 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))), m_endFrame(mw_endInformation(e_noAckReq)))) { // received correctly tc_ac.stop ; setverdict(pass); } [] tc_ac.timeout { log("**** f_TC_voiceTx_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_voiceTxCheckPowerSavePreamble_MS01 /** * @desc Check that a voice transmission from the powersaved 15 exthdrs * enabled MS (IUT) consists of a 15 exthdrs,Header Frame, a list of * Super Frames, and an End Frame, */ function f_TC_voiceTxCheckPowersaveCallInfoExtHeaders15_MS01 ( ) runs on Mse{ // Variables var FncRetCode v_ret := e_success; var UInt16 v_sfCount := 0; var default v_defvar; var PayloadTransmission v_payloadTransmission; var HeaderInformation v_headerInfo; var boolean v_testCaseOk; //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_voiceorT1orT2PayloadTransmissionPowersave( mw_extHeaderFrameList( m_headerFrame( mw_extHeaderInformationTx( vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p, mw_extHeaderCallInformation), vc_mse.colourCode)), m_headerFrame( mw_headerInformationTx( vc_mse.testerId, vc_mse.iutId, e_voice, 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))), m_endFrame(mw_endInformation(e_noAckReq)))) -> value v_payloadTransmission { // received correctly tc_ac.stop ; // check there are 15 extheaders if (sizeof(v_payloadTransmission.extHdrFrameList) != 15) { log("**** f_TC_voiceTxCheckPowerCallInfoExtHeaders15_MS01: 15 extended headers not received ****"); setverdict(fail); } else { // received 15 ok, lets check they are decreasing //TODO JP should we consider headerInformation1 as well? v_testCaseOk := true; v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[0].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame15); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[1].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame14); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[2].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame13); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[3].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame12); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[4].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame11); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[5].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame10); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[6].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame9); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[7].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame8); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[8].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame7); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[9].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame6); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[10].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame5); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[11].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame4); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[12].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame3); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[13].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame2); v_testCaseOk := v_testCaseOk and (v_payloadTransmission.extHdrFrameList[14].headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationPws == e_extHdrFrame1); if (not v_testCaseOk) { log("**** f_TC_voiceTxCheckPowerCallInfoExtHeaders15_MS01: The 15 extended headers received were not in exact decreasing order. ****"); setverdict(fail); } setverdict(pass); } } [] tc_ac.timeout { log("**** f_TC_voiceTxCheckPowerCallInfoExtHeaders15_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_voiceTxCheckPowersaveCallInfoExtHeaders15_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, Check the Communicationsmode and the Communications Format Loading Loading @@ -1280,7 +1578,7 @@ module dPMR_TestCases { } // end function f_TC_disconnectionRequestTx_MS01 }//end commonTCFunctions }//end group commonTCFunctions group ut_TC_Functions { Loading
ttcn/dPMR_TestConfiguration.ttcn +3 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,9 @@ module dPMR_TestConfiguration { group configFns { /* * @remark This function implements the CF_dPMR_01 configuration */ function f_cfMseUp( out Mse p_mse, out Ut p_ut) Loading
ttcn/dPMR_TestExecution.ttcn +86 −2 Original line number Diff line number Diff line Loading @@ -18,8 +18,92 @@ module dPMR_TestExecution { control{ // Group: TODO grouping with comments-way if (PIC_ISF_OR_CSF == e_isf) {execute(TC_PMR_0824_01( ) );} // group IsfCsfCommon { // Clause 5.1 // group AllCall { // Clause 5.1.1 if ((PIC_ISF_OR_CSF == e_isf) and PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_0824_01() );} if ((PIC_ISF_OR_CSF == e_isf) and PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_0824_03() );} // Group ChannelAccess // group Framing {// Clause 5.1.3 if (PIC_CSF_VOICE_SUPPORT or PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_0401_01() );} if ((PIC_ISF_OR_CSF == e_csf) and PIC_MANUAL_CONNECTION_REQUEST) {execute(TC_PMR_0405_01() );} if ((PIC_ISF_OR_CSF == e_csf) and PIC_AUTOMATIC_CONNECTION_REQUEST and PIC_CSF_VOICE_SUPPORT) {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 if ((PIC_ISF_OR_CSF == e_csf) and PIC_CSF_TYPE_1_DATA_SUPPORT) {execute(TC_PMR_0406_02() );} if ((PIC_ISF_OR_CSF == e_csf) and PIC_MANUAL_DISCONNECTION_REQUEST) {execute(TC_PMR_0407_01() );} if ((PIC_ISF_OR_CSF == e_csf) and PIC_CSF_TYPE_1_DATA_SUPPORT and PIC_AUTOMATIC_DISCONNECTION_REQUEST) {execute(TC_PMR_0407_02() );} if ((PIC_ISF_OR_CSF == e_csf) and PIC_CSF_VOICE_SUPPORT) {execute(TC_PMR_0811_01() );} // TODO JP perhaps change this to 0811_XX to loop through all colour codes // group HeaderFrames { // Clause 5.1.3.2 if ((PIC_ISF_OR_CSF == e_csf) and PIC_CSF_TYPE_3_DATA_SUPPORT) {execute(TC_PMR_0816_01() );} // }// end group HeaderFrames // group GroupSuperFrame { // Clause 5.1.3.4 // group typeT1Data { // Clause 5.1.3.4.1 if (PIC_CSF_TYPE_1_DATA_SUPPORT) {execute(TC_PMR_0807_01() );} // } // end group typeT1Data // group typeT2Data { // Clause 5.1.3.4.1 if (PIC_CSF_TYPE_2_DATA_SUPPORT) {execute(TC_PMR_0806_01() );} // } // end group typeT2Data // group Voice { // Clause 5.1.3.4.3 // } // end group Voice // } // end group GroupSuperFrame // } // end group Framing // group LateEntry { // Clause 5.1.4 if (PIC_CSF_VOICE_SS_LATE_ENTRY or PIC_ISF_LATE_ENTRY) {execute(TC_PMR_0802_01() );} if (PIC_CSF_VOICE_SS_LATE_ENTRY or PIC_ISF_LATE_ENTRY) {execute(TC_PMR_0802_02() );} if (PIC_CSF_VOICE_SS_LATE_ENTRY or PIC_ISF_LATE_ENTRY) {execute(TC_PMR_0802_03() );} // } // end group LateEntry // group Powersave {// Clause 5.1.5 if (PIC_CSF_VOICE_SUPPORT or PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_1101_01() );} if (PIC_CSF_VOICE_SUPPORT or PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_1102_01() );} if (PIC_CSF_VOICE_SUPPORT or PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_1103_01() );} // } // end group Powersave // group TalkingParty_ID {// Clause 5.1.6 // } // end group TalkingParty_ID //} // end group IsfCsfCommon //group CSF_only {// Clause 5.2 // group BroadcastCall { // Clause 5.2.1 // } // end group BroadcastCall // group DialingPlan { // Clause 5.2.2 // } // end group DialingPlan // group IndividualShortDataMessage { // Clause 5.2.3 // group ISDM_FreeTestMessage {// Clause 5.2.3.1 // } // end group ISDM_FreeTestMessage // group ISDM_PrecodedMessage {// Clause 5.2.3.2 // } // end group ISDM_PrecodedMessage // group ISDM_ShortFileTransfer {// Clause 5.2.3.3 // } // end group ISDM_ShortFileTransfer // group ISDM_StatusMessage {// Clause 5.2.3.4 // } // end group ISDM_StatusMessage // } // end group IndividualShortDataMessage // group OACSU { // Clause 5.2.4 // } // end group OACSU // group ShortAppendedData { // Clause 5.2.5 // } // end group ShortAppendedData // group SlowUserData { // Clause 5.2.6 // } // end group SlowUserData // group Type3Data { // Clause 5.2.7 // } // end group Type3Data //} // end group CSF_only //group ISF_only {// Clause 5.3 //} // end group ISF_only if (PIC_ISF_OR_CSF == e_csf) {execute( TC_PMR_0406_01() );} // Group: execute(TC_PMR_0801_01( ) ); Loading