Loading ttcn/AtsECall_IVS_Testcases.ttcn +11 −3 Original line number Diff line number Diff line Loading @@ -809,6 +809,7 @@ module AtsECall_IVS_Testcases { // Local variables template(value) ConfigParameters v_locaPsapSimCfg modifies m_defaultPsapSimulatorConfiguration := {inbandDirection := PUSH, ignoreSendSignal := true} var FeedbackResult v_feedback; var CallEstablishedEvent v_callEstablishedEvent; var Event v_event; var InbandSendSignalReceivedEvent v_lastSendSignal; Loading @@ -819,7 +820,10 @@ module AtsECall_IVS_Testcases { f_configIvsUp(v_locaPsapSimCfg); // Test Body v_callEstablishedEvent := f_establishCall("Trigger manual or automatic eCall"); v_feedback := f_establishCall("Trigger manual or automatic eCall"); if(ischosen(v_feedback.event)) { v_callEstablishedEvent := v_feedback.event.callEstablished; } // start listening for start signal t_guard.start; Loading Loading @@ -1356,6 +1360,7 @@ module AtsECall_IVS_Testcases { testcase CTP_1_1_16_2() runs on PsapMtc system PsapSystem { // Local variables var FeedbackResult v_feedback; var CallEstablishedEvent v_callEstablished; var CallHangUpEvent v_callHangUp; var integer v_diff; Loading @@ -1365,7 +1370,10 @@ module AtsECall_IVS_Testcases { f_configIvsUp(m_defaultPsapSimulatorConfiguration); // Test Body v_callEstablished := f_establishCall("Trigger eCall"); v_feedback := f_establishCall("Trigger eCall"); if(ischosen(v_feedback.event)) { v_callEstablished := v_feedback.event.callEstablished; } t_t2.start; Loading ttcn/AtsECall_PSAP_Testcases.ttcn +40 −28 Original line number Diff line number Diff line Loading @@ -221,19 +221,19 @@ module AtsECall_PSAP_Testcases { // because of CRC errors T7 should expire } [] eCallFeedback.receive(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)) { [] eCallFeedback.receive(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)) { repeat; } [] eCallFeedback.receive(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)) { [] eCallFeedback.receive(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)) { f_stopTestcase(fail, "LL-ACK reveceived for MSD with CRC error") } [] eCallFeedback.receive(mw_inbandLlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)) { [] eCallFeedback.receive(mw_inbandLlAckReceived(PX_WORKERS[0].id, -, -, true)) { f_stopTestcase(fail, "LL-ACK reveceived for MSD with CRC error") } [] eCallFeedback.receive(mw_inbandAlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)) { [] eCallFeedback.receive(mw_inbandAlAckReceived(PX_WORKERS[0].id, -, -, -, true)) { f_stopTestcase(fail, "AL-ACK reveceived for MSD with CRC error") } } Loading Loading @@ -290,8 +290,8 @@ module AtsECall_PSAP_Testcases { eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); f_expectFeedback(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); f_expectFeedback(mw_inbandLlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); f_expectFeedback(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)); f_expectFeedback(mw_inbandLlAckReceived(PX_WORKERS[0].id, -, -, true)); f_expectFeedback(mw_callVoiceConnectionEstablished(PX_WORKERS[0].id)); Loading Loading @@ -503,7 +503,7 @@ module AtsECall_PSAP_Testcases { f_userAction("Clear down PSAP"); f_expectFeedback(mw_callHangUp(p_worker := PX_WORKERS[0].id, p_callRef := EXTERNAL), PX_TIMEOUT, true); f_expectFeedback(mw_callHangUp(PX_WORKERS[0].id, -, EXTERNAL), PX_TIMEOUT, true); f_userVerify("Is the operator line free?", "Operator line became free", Loading Loading @@ -559,13 +559,13 @@ module AtsECall_PSAP_Testcases { eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); f_expectFeedback(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); f_expectFeedback(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)); f_userAction("Clear down PSAP"); f_expectFeedback(mw_inbandLlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true), PX_TIMEOUT, true); f_expectFeedback(mw_inbandLlAckReceived(PX_WORKERS[0].id, -, -, true), PX_TIMEOUT, true); f_expectFeedback(mw_inbandAlAckReceived(p_worker := PX_WORKERS[0].id, p_val := c_clearDownAlAck, p_reliable := true), PX_TIMEOUT, true); f_expectFeedback(mw_inbandAlAckReceived(PX_WORKERS[0].id, -, -, c_clearDownAlAck, true), PX_TIMEOUT, true); setverdict(pass, "Status bit of AL-ACK equal 1 (Cleardown)"); Loading Loading @@ -608,7 +608,7 @@ module AtsECall_PSAP_Testcases { f_userAction("Clear down eCall"); f_expectFeedback(mw_callHangUp(p_worker := PX_WORKERS[0].id, p_callRef := EXTERNAL), PX_TIMEOUT, true); f_expectFeedback(mw_callHangUp(PX_WORKERS[0].id, -, EXTERNAL), PX_TIMEOUT, true); f_userAction("Initiate call back procedure"); Loading Loading @@ -665,7 +665,7 @@ module AtsECall_PSAP_Testcases { f_userAction("Clear down eCall"); f_expectFeedback(mw_callHangUp(p_worker := PX_WORKERS[0].id, p_callRef := EXTERNAL), PX_TIMEOUT, true); f_expectFeedback(mw_callHangUp(PX_WORKERS[0].id, -, EXTERNAL), PX_TIMEOUT, true); f_userAction("Initiate call back procedure"); Loading Loading @@ -720,7 +720,7 @@ module AtsECall_PSAP_Testcases { eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); f_expectFeedback(mw_inbandAlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true), PX_TIMEOUT, true); f_expectFeedback(mw_inbandAlAckReceived(PX_WORKERS[0].id, -, -, -, true), PX_TIMEOUT, true); // Postamble f_configDown(); Loading Loading @@ -761,7 +761,7 @@ module AtsECall_PSAP_Testcases { eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); f_expectFeedback(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); f_expectFeedback(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)); // Postamble f_configDown(); Loading Loading @@ -843,7 +843,7 @@ module AtsECall_PSAP_Testcases { // Local variables var InbandStartSignalReceivedEvent v_startSignal; var Event v_event; var FeedbackResult v_feedback; var CallEstablishedEvent v_callEstablished; // Test component configuration Loading @@ -851,11 +851,15 @@ module AtsECall_PSAP_Testcases { // Test Body eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); v_event := f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); v_callEstablished := v_event.callEstablished; v_feedback := f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); if(ischosen(v_feedback.event)) { v_callEstablished := v_feedback.event.callEstablished; } v_event := f_expectFeedback(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); v_startSignal := v_event.inbandStartSignalReceived; v_feedback := f_expectFeedback(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)); if(ischosen(v_feedback.event)) { v_startSignal := v_feedback.event.inbandStartSignalReceived; } f_timeoutCheck(v_callEstablished.time, v_startSignal.time, PX_T5_TIMER, "In-band modem sent 'SEND MSD' message before T5 expired", Loading Loading @@ -892,7 +896,7 @@ module AtsECall_PSAP_Testcases { testcase CTP_3_1_7_1() runs on IvsMtc system IvsSystem { // Local variables var Event v_event; var FeedbackResult v_feedback; var InbandStartSignalReceivedEvent v_startSignal; var CallEstablishedEvent v_callEstablished; var InbandLlAckReceivedEvent v_llAckReceived; Loading @@ -903,25 +907,33 @@ module AtsECall_PSAP_Testcases { // Test Body eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); v_event := f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); v_callEstablished := v_event.callEstablished; v_feedback := f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); if(ischosen(v_feedback.event)) { v_callEstablished := v_feedback.event.callEstablished; } v_event := f_expectFeedback(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); v_startSignal := v_event.inbandStartSignalReceived; v_feedback := f_expectFeedback(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)); if(ischosen(v_feedback.event)) { v_startSignal := v_feedback.event.inbandStartSignalReceived; } f_timeoutCheck(v_callEstablished.time, v_startSignal.time, PX_T5_TIMER, "In-band modem sent 'SEND MSD' message before T5 expired", "In-band modem did not send 'SEND MSD' message before T5 expired"); v_event := f_expectFeedback(mw_inbandLlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true), PX_TIMEOUT, true); v_llAckReceived := v_event.inbandLlAckReceived; v_feedback := f_expectFeedback(mw_inbandLlAckReceived(PX_WORKERS[0].id, -, -, true), PX_TIMEOUT, true); if(ischosen(v_feedback.event)) { v_llAckReceived := v_feedback.event.inbandLlAckReceived; } f_timeoutCheck(v_startSignal.time, v_llAckReceived.time, PX_T7_TIMER, "In-band modem sent 'LL ACK' message before T7 expired", "In-band modem did not send 'LL ACK' message before T7 expired"); v_event := f_expectFeedback(mw_inbandAlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); v_alAckReceived := v_event.inbandAlAckReceived; v_feedback := f_expectFeedback(mw_inbandAlAckReceived(PX_WORKERS[0].id, -, -, -, true)); if(ischosen(v_feedback.event)) { v_alAckReceived := v_feedback.event.inbandAlAckReceived; } f_timeoutCheck(v_llAckReceived.time, v_alAckReceived.time, PX_T6_TIMER, "In-band modem sent 'AL ACK' message before T6 expired", Loading ttcn/LibItsECall_Functions.ttcn +14 −10 Original line number Diff line number Diff line Loading @@ -30,15 +30,16 @@ * @param msg optional message to display before waiting for incoming call, if the message is an empty charstring no message box is displayed * @return CallEstablishedEvent */ function f_establishCall(in charstring p_establishMessage := "Establish IVS eCall") runs on PsapMtc return CallEstablishedEvent { function f_establishCall(in charstring p_establishMessage := "Establish IVS eCall") runs on PsapMtc return FeedbackResult { template ShowMessageBox localMsg modifies m_stablishECallMgs := {msg := p_establishMessage} var Event v_event; var FeedbackResult v_feedback; var CallEstablishedEvent v_callEstablishedEvent; timer t := PX_TIMEOUT; if (getverdict == fail or getverdict == inconc) { return null; v_feedback.failure := false; return v_feedback; } uiPort.send(localMsg); Loading Loading @@ -68,9 +69,8 @@ eCallControl.send(m_callAccept(PX_WORKER)); v_event := f_expectFeedback(mw_callEstablished(PX_WORKER, ?, EXTERNAL)); v_callEstablishedEvent := v_event.callEstablished; return v_callEstablishedEvent; v_feedback := f_expectFeedback(mw_callEstablished(PX_WORKER, ?, EXTERNAL)); return v_feedback; } function f_verifyMSD(in template(present) ECallMessageUnion p_expectedEcallMessage) runs on PsapMtc { Loading Loading @@ -226,17 +226,20 @@ f_expectFeedback(p_e := mw_ivsConfigChanged(p_workerConf.id, ?, p_configuration), p_ignoreOtherMessages := true); } function f_expectFeedback(template Event p_e, float p_event_timeout := PX_TIMEOUT, in boolean p_ignoreOtherMessages := false) runs on ECallMtc return Event { function f_expectFeedback(template Event p_e, float p_event_timeout := PX_TIMEOUT, in boolean p_ignoreOtherMessages := false) runs on ECallMtc return FeedbackResult { timer t := p_event_timeout; var Event v_received := null; var Event v_received; var FeedbackResult v_result; v_result.failure := false; if (getverdict == fail or getverdict == inconc) { return v_received; return v_result; } t.start; alt { [] eCallFeedback.receive(p_e) -> value v_received { v_result.event := v_received; t.stop; } Loading @@ -245,11 +248,12 @@ } [] t.timeout { v_result.failure := true; f_stopTestcase(inconc, "Timeout!"); } } return v_received; return v_result; } group altsteps { Loading ttcn/LibItsECall_TypesAndValues.ttcn +5 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,11 @@ module LibItsECall_TypesAndValues { encode "MSDEncode"; }; type union FeedbackResult { boolean failure, Event event } type record of charstring CharstringRecord; type record of WorkerConf WorkerConfArray; Loading Loading
ttcn/AtsECall_IVS_Testcases.ttcn +11 −3 Original line number Diff line number Diff line Loading @@ -809,6 +809,7 @@ module AtsECall_IVS_Testcases { // Local variables template(value) ConfigParameters v_locaPsapSimCfg modifies m_defaultPsapSimulatorConfiguration := {inbandDirection := PUSH, ignoreSendSignal := true} var FeedbackResult v_feedback; var CallEstablishedEvent v_callEstablishedEvent; var Event v_event; var InbandSendSignalReceivedEvent v_lastSendSignal; Loading @@ -819,7 +820,10 @@ module AtsECall_IVS_Testcases { f_configIvsUp(v_locaPsapSimCfg); // Test Body v_callEstablishedEvent := f_establishCall("Trigger manual or automatic eCall"); v_feedback := f_establishCall("Trigger manual or automatic eCall"); if(ischosen(v_feedback.event)) { v_callEstablishedEvent := v_feedback.event.callEstablished; } // start listening for start signal t_guard.start; Loading Loading @@ -1356,6 +1360,7 @@ module AtsECall_IVS_Testcases { testcase CTP_1_1_16_2() runs on PsapMtc system PsapSystem { // Local variables var FeedbackResult v_feedback; var CallEstablishedEvent v_callEstablished; var CallHangUpEvent v_callHangUp; var integer v_diff; Loading @@ -1365,7 +1370,10 @@ module AtsECall_IVS_Testcases { f_configIvsUp(m_defaultPsapSimulatorConfiguration); // Test Body v_callEstablished := f_establishCall("Trigger eCall"); v_feedback := f_establishCall("Trigger eCall"); if(ischosen(v_feedback.event)) { v_callEstablished := v_feedback.event.callEstablished; } t_t2.start; Loading
ttcn/AtsECall_PSAP_Testcases.ttcn +40 −28 Original line number Diff line number Diff line Loading @@ -221,19 +221,19 @@ module AtsECall_PSAP_Testcases { // because of CRC errors T7 should expire } [] eCallFeedback.receive(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)) { [] eCallFeedback.receive(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)) { repeat; } [] eCallFeedback.receive(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)) { [] eCallFeedback.receive(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)) { f_stopTestcase(fail, "LL-ACK reveceived for MSD with CRC error") } [] eCallFeedback.receive(mw_inbandLlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)) { [] eCallFeedback.receive(mw_inbandLlAckReceived(PX_WORKERS[0].id, -, -, true)) { f_stopTestcase(fail, "LL-ACK reveceived for MSD with CRC error") } [] eCallFeedback.receive(mw_inbandAlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)) { [] eCallFeedback.receive(mw_inbandAlAckReceived(PX_WORKERS[0].id, -, -, -, true)) { f_stopTestcase(fail, "AL-ACK reveceived for MSD with CRC error") } } Loading Loading @@ -290,8 +290,8 @@ module AtsECall_PSAP_Testcases { eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); f_expectFeedback(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); f_expectFeedback(mw_inbandLlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); f_expectFeedback(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)); f_expectFeedback(mw_inbandLlAckReceived(PX_WORKERS[0].id, -, -, true)); f_expectFeedback(mw_callVoiceConnectionEstablished(PX_WORKERS[0].id)); Loading Loading @@ -503,7 +503,7 @@ module AtsECall_PSAP_Testcases { f_userAction("Clear down PSAP"); f_expectFeedback(mw_callHangUp(p_worker := PX_WORKERS[0].id, p_callRef := EXTERNAL), PX_TIMEOUT, true); f_expectFeedback(mw_callHangUp(PX_WORKERS[0].id, -, EXTERNAL), PX_TIMEOUT, true); f_userVerify("Is the operator line free?", "Operator line became free", Loading Loading @@ -559,13 +559,13 @@ module AtsECall_PSAP_Testcases { eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); f_expectFeedback(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); f_expectFeedback(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)); f_userAction("Clear down PSAP"); f_expectFeedback(mw_inbandLlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true), PX_TIMEOUT, true); f_expectFeedback(mw_inbandLlAckReceived(PX_WORKERS[0].id, -, -, true), PX_TIMEOUT, true); f_expectFeedback(mw_inbandAlAckReceived(p_worker := PX_WORKERS[0].id, p_val := c_clearDownAlAck, p_reliable := true), PX_TIMEOUT, true); f_expectFeedback(mw_inbandAlAckReceived(PX_WORKERS[0].id, -, -, c_clearDownAlAck, true), PX_TIMEOUT, true); setverdict(pass, "Status bit of AL-ACK equal 1 (Cleardown)"); Loading Loading @@ -608,7 +608,7 @@ module AtsECall_PSAP_Testcases { f_userAction("Clear down eCall"); f_expectFeedback(mw_callHangUp(p_worker := PX_WORKERS[0].id, p_callRef := EXTERNAL), PX_TIMEOUT, true); f_expectFeedback(mw_callHangUp(PX_WORKERS[0].id, -, EXTERNAL), PX_TIMEOUT, true); f_userAction("Initiate call back procedure"); Loading Loading @@ -665,7 +665,7 @@ module AtsECall_PSAP_Testcases { f_userAction("Clear down eCall"); f_expectFeedback(mw_callHangUp(p_worker := PX_WORKERS[0].id, p_callRef := EXTERNAL), PX_TIMEOUT, true); f_expectFeedback(mw_callHangUp(PX_WORKERS[0].id, -, EXTERNAL), PX_TIMEOUT, true); f_userAction("Initiate call back procedure"); Loading Loading @@ -720,7 +720,7 @@ module AtsECall_PSAP_Testcases { eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); f_expectFeedback(mw_inbandAlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true), PX_TIMEOUT, true); f_expectFeedback(mw_inbandAlAckReceived(PX_WORKERS[0].id, -, -, -, true), PX_TIMEOUT, true); // Postamble f_configDown(); Loading Loading @@ -761,7 +761,7 @@ module AtsECall_PSAP_Testcases { eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); f_expectFeedback(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); f_expectFeedback(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)); // Postamble f_configDown(); Loading Loading @@ -843,7 +843,7 @@ module AtsECall_PSAP_Testcases { // Local variables var InbandStartSignalReceivedEvent v_startSignal; var Event v_event; var FeedbackResult v_feedback; var CallEstablishedEvent v_callEstablished; // Test component configuration Loading @@ -851,11 +851,15 @@ module AtsECall_PSAP_Testcases { // Test Body eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); v_event := f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); v_callEstablished := v_event.callEstablished; v_feedback := f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); if(ischosen(v_feedback.event)) { v_callEstablished := v_feedback.event.callEstablished; } v_event := f_expectFeedback(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); v_startSignal := v_event.inbandStartSignalReceived; v_feedback := f_expectFeedback(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)); if(ischosen(v_feedback.event)) { v_startSignal := v_feedback.event.inbandStartSignalReceived; } f_timeoutCheck(v_callEstablished.time, v_startSignal.time, PX_T5_TIMER, "In-band modem sent 'SEND MSD' message before T5 expired", Loading Loading @@ -892,7 +896,7 @@ module AtsECall_PSAP_Testcases { testcase CTP_3_1_7_1() runs on IvsMtc system IvsSystem { // Local variables var Event v_event; var FeedbackResult v_feedback; var InbandStartSignalReceivedEvent v_startSignal; var CallEstablishedEvent v_callEstablished; var InbandLlAckReceivedEvent v_llAckReceived; Loading @@ -903,25 +907,33 @@ module AtsECall_PSAP_Testcases { // Test Body eCallControl.send(m_callCreate(PX_WORKERS[0].id, PX_PSAP_PHONE_NUMBER, EXTERNAL)); v_event := f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); v_callEstablished := v_event.callEstablished; v_feedback := f_expectFeedback(mw_callEstablished(PX_WORKERS[0].id, ?, EXTERNAL)); if(ischosen(v_feedback.event)) { v_callEstablished := v_feedback.event.callEstablished; } v_event := f_expectFeedback(mw_inbandStartSignalReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); v_startSignal := v_event.inbandStartSignalReceived; v_feedback := f_expectFeedback(mw_inbandStartSignalReceived(PX_WORKERS[0].id, -, -, true)); if(ischosen(v_feedback.event)) { v_startSignal := v_feedback.event.inbandStartSignalReceived; } f_timeoutCheck(v_callEstablished.time, v_startSignal.time, PX_T5_TIMER, "In-band modem sent 'SEND MSD' message before T5 expired", "In-band modem did not send 'SEND MSD' message before T5 expired"); v_event := f_expectFeedback(mw_inbandLlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true), PX_TIMEOUT, true); v_llAckReceived := v_event.inbandLlAckReceived; v_feedback := f_expectFeedback(mw_inbandLlAckReceived(PX_WORKERS[0].id, -, -, true), PX_TIMEOUT, true); if(ischosen(v_feedback.event)) { v_llAckReceived := v_feedback.event.inbandLlAckReceived; } f_timeoutCheck(v_startSignal.time, v_llAckReceived.time, PX_T7_TIMER, "In-band modem sent 'LL ACK' message before T7 expired", "In-band modem did not send 'LL ACK' message before T7 expired"); v_event := f_expectFeedback(mw_inbandAlAckReceived(p_worker := PX_WORKERS[0].id, p_reliable := true)); v_alAckReceived := v_event.inbandAlAckReceived; v_feedback := f_expectFeedback(mw_inbandAlAckReceived(PX_WORKERS[0].id, -, -, -, true)); if(ischosen(v_feedback.event)) { v_alAckReceived := v_feedback.event.inbandAlAckReceived; } f_timeoutCheck(v_llAckReceived.time, v_alAckReceived.time, PX_T6_TIMER, "In-band modem sent 'AL ACK' message before T6 expired", Loading
ttcn/LibItsECall_Functions.ttcn +14 −10 Original line number Diff line number Diff line Loading @@ -30,15 +30,16 @@ * @param msg optional message to display before waiting for incoming call, if the message is an empty charstring no message box is displayed * @return CallEstablishedEvent */ function f_establishCall(in charstring p_establishMessage := "Establish IVS eCall") runs on PsapMtc return CallEstablishedEvent { function f_establishCall(in charstring p_establishMessage := "Establish IVS eCall") runs on PsapMtc return FeedbackResult { template ShowMessageBox localMsg modifies m_stablishECallMgs := {msg := p_establishMessage} var Event v_event; var FeedbackResult v_feedback; var CallEstablishedEvent v_callEstablishedEvent; timer t := PX_TIMEOUT; if (getverdict == fail or getverdict == inconc) { return null; v_feedback.failure := false; return v_feedback; } uiPort.send(localMsg); Loading Loading @@ -68,9 +69,8 @@ eCallControl.send(m_callAccept(PX_WORKER)); v_event := f_expectFeedback(mw_callEstablished(PX_WORKER, ?, EXTERNAL)); v_callEstablishedEvent := v_event.callEstablished; return v_callEstablishedEvent; v_feedback := f_expectFeedback(mw_callEstablished(PX_WORKER, ?, EXTERNAL)); return v_feedback; } function f_verifyMSD(in template(present) ECallMessageUnion p_expectedEcallMessage) runs on PsapMtc { Loading Loading @@ -226,17 +226,20 @@ f_expectFeedback(p_e := mw_ivsConfigChanged(p_workerConf.id, ?, p_configuration), p_ignoreOtherMessages := true); } function f_expectFeedback(template Event p_e, float p_event_timeout := PX_TIMEOUT, in boolean p_ignoreOtherMessages := false) runs on ECallMtc return Event { function f_expectFeedback(template Event p_e, float p_event_timeout := PX_TIMEOUT, in boolean p_ignoreOtherMessages := false) runs on ECallMtc return FeedbackResult { timer t := p_event_timeout; var Event v_received := null; var Event v_received; var FeedbackResult v_result; v_result.failure := false; if (getverdict == fail or getverdict == inconc) { return v_received; return v_result; } t.start; alt { [] eCallFeedback.receive(p_e) -> value v_received { v_result.event := v_received; t.stop; } Loading @@ -245,11 +248,12 @@ } [] t.timeout { v_result.failure := true; f_stopTestcase(inconc, "Timeout!"); } } return v_received; return v_result; } group altsteps { Loading
ttcn/LibItsECall_TypesAndValues.ttcn +5 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,11 @@ module LibItsECall_TypesAndValues { encode "MSDEncode"; }; type union FeedbackResult { boolean failure, Event event } type record of charstring CharstringRecord; type record of WorkerConf WorkerConfArray; Loading