blob: 4fe49b0e3cb70e20c0ee1aeb2e16d56fc69866dc [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2018 Ericsson Telecom AB
//
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
///////////////////////////////////////////////////////////////////////////////
//
// File: MBT_Qtronic_TestHarness.ttcn
// Rev: <RnXnn>
// Prodnr: CNL 113 659
// Updated: 2010-10-01
// Contact: http://ttcn.ericsson.se
///////////////////////////////////////////////////////////////////////////////
/* -*- ttcn-3 -*- */
/**
* @file
* C:\Users\eantwuh\workspace\GGSN_Goteborg\MBT_Qtronic_TestHarness.ttcn
* @author
* Conformiq TTCN-3 scripting backend
* @version
* Tue Sep 14 14:48:48 CEST 2010
* @desc
* This is a template file with TTCN-3 function stubs for the implementation
* of test harness code for the test suites generated from the Conformiq '
* GGSN_Goteborg' project.
* @remark
* All function definitions must be edited as instructed in their comments in
* order for the test suite to execute properly.
*/
module MBT_Qtronic_TestHarness
{
import from MBT_Qtronic_Types all;
import from MBT_Qtronic_TestSystem all;
import from MBT_Qtronic_Main all;
import from EPTF_MBT_LGen_Definitions all;
import from EPTF_MBT_LGen_Functions all;
import from EPTF_TELNET_LGen_Definitions all;
modulepar
{
boolean tsp_enableLogging := true;
}
/**
* @desc
* This function performs manipulation needed and sends a p_Restart
* via the abstract test interface to the SUT.
* @param
* p_Restart Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_Restart_to_CLIin(template Restart p_Restart) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_Restart); }
// Steps that need to be implemented here are:
// (modify and uncomment example code as needed)
// 1. transform data from a Restart to the TTCN-3 data value used by the test harness (if needed)
// var <T3RestartType> v_T3Restart := f_transformRestartCQtoT3(p_Restart);
// 2. replace symbolic values (if any) with real values in TTCN-3 data value
// 3. send TTCN-3 data value via TTCN-3 port which corresponds toCLIinmodel port
// CLIin.send(v_T3Restart);
//CLIin.send(p_Restart);
// Remove or comment the following generated code
log("CQ_INFO: Warning: f_cq_send_Restart_to_CLIin: function is not implemented)");
}
/**
* @desc
* This function performs manipulation needed and sends a p_Configure
* via the abstract test interface to the SUT.
* @param
* p_Configure Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_Configure_to_CLIin(template Configure p_Configure) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_Configure); }
// Steps that need to be implemented here are:
// (modify and uncomment example code as needed)
// 1. transform data from a Configure to the TTCN-3 data value used by the test harness (if needed)
// var <T3ConfigureType> v_T3Configure := f_transformConfigureCQtoT3(p_Configure);
// 2. replace symbolic values (if any) with real values in TTCN-3 data value
// 3. send TTCN-3 data value via TTCN-3 port which corresponds toCLIinmodel port
// CLIin.send(v_T3Configure);
//CLIin.send(p_Configure);
// Remove or comment the following generated code
log("CQ_INFO: Warning: f_cq_send_Configure_to_CLIin: function is not implemented)");
}
/**
* @desc
* This function performs manipulation needed and sends a p_OverrideConfiguration
* via the abstract test interface to the SUT.
* @param
* p_OverrideConfiguration Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_OverrideConfiguration_to_CLIin(template OverrideConfiguration p_OverrideConfiguration) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_OverrideConfiguration); }
// Steps that need to be implemented here are:
// (modify and uncomment example code as needed)
// 1. transform data from a OverrideConfiguration to the TTCN-3 data value used by the test harness (if needed)
// var <T3OverrideConfigurationType> v_T3OverrideConfiguration := f_transformOverrideConfigurationCQtoT3(p_OverrideConfiguration);
// 2. replace symbolic values (if any) with real values in TTCN-3 data value
// 3. send TTCN-3 data value via TTCN-3 port which corresponds toCLIinmodel port
// CLIin.send(v_T3OverrideConfiguration);
//CLIin.send(p_OverrideConfiguration);
// Remove or comment the following generated code
log("CQ_INFO: Warning: f_cq_send_OverrideConfiguration_to_CLIin: function is not implemented)");
}
/**
* @desc
* This function performs manipulation needed and sends a p_Prepare
* via the abstract test interface to the SUT.
* @param
* p_Prepare Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_Prepare_to_CLIin(template Prepare p_Prepare) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_Prepare); }
f_MBT_execute(c_EPTF_TELNET_stepName_init, valueof(t_addr(0)), {0});
f_MBT_execute(c_EPTF_TELNET_stepName_connect, valueof(t_addr(0)), {0});
f_MBT_waitFor(c_EPTF_TELNET_behavior, c_EPTF_TELNET_inputName_autoLoginFinished, valueof(t_addr(0)));
timer t_wait := 30.0;
f_MBT_execute(c_EPTF_TELNET_stepName_playList, valueof(t_addr(0)));
t_wait.start;
alt
{
[] EPTF_MBT_TESTER_PCO.receive(EPTF_MBT_TestStepResponse:{ bName := c_EPTF_TELNET_behavior, iName := c_EPTF_TELNET_inputName_matchingPlayListResp, addr := valueof(t_addr(0))})
{
t_wait.stop;
action(%definitionId, "Received: matchingPlayListRespReceived");
f_MBT_execute(c_EPTF_TELNET_stepName_playList, valueof(t_addr(0)));
t_wait.start;
repeat;
}
[] EPTF_MBT_TESTER_PCO.receive(EPTF_MBT_TestStepResponse:{ bName := c_EPTF_TELNET_behavior, iName := c_EPTF_TELNET_inputName_lastMatchingPlayListResp, addr := valueof(t_addr(0))})
{
action(%definitionId, "Received: lastMatchingPlayListRespReceived");
t_wait.stop;
}
[] EPTF_MBT_TESTER_PCO.receive
{
log(%definitionId, "Dropping unexpected message!");
repeat;
}
[] t_wait.timeout
{
action(%definitionId, "Timeout!");
}
}
}
/**
* @desc
* This function performs manipulation needed and sends a p_Restore
* via the abstract test interface to the SUT.
* @param
* p_Restore Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_Restore_to_CLIin(template Restore p_Restore) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_Restore); }
// Steps that need to be implemented here are:
// (modify and uncomment example code as needed)
// 1. transform data from a Restore to the TTCN-3 data value used by the test harness (if needed)
// var <T3RestoreType> v_T3Restore := f_transformRestoreCQtoT3(p_Restore);
// 2. replace symbolic values (if any) with real values in TTCN-3 data value
// 3. send TTCN-3 data value via TTCN-3 port which corresponds toCLIinmodel port
// CLIin.send(v_T3Restore);
//CLIin.send(p_Restore);
// Remove or comment the following generated code
log("CQ_INFO: Warning: f_cq_send_Restore_to_CLIin: function is not implemented)");
}
/**
* @desc
* This function performs manipulation needed and sends a p_UDPpdu
* via the abstract test interface to the SUT.
* @param
* p_UDPpdu Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_UDPpdu_to_GiIn(template UDPpdu p_UDPpdu) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_UDPpdu); }
// Steps that need to be implemented here are:
// (modify and uncomment example code as needed)
// 1. transform data from a UDPpdu to the TTCN-3 data value used by the test harness (if needed)
// var <T3UDPpduType> v_T3UDPpdu := f_transformUDPpduCQtoT3(p_UDPpdu);
// 2. replace symbolic values (if any) with real values in TTCN-3 data value
// 3. send TTCN-3 data value via TTCN-3 port which corresponds toGiInmodel port
// GiIn.send(v_T3UDPpdu);
//GiIn.send(p_UDPpdu);
// Remove or comment the following generated code
//log("CQ_INFO: Warning: f_cq_send_UDPpdu_to_GiIn: function is not implemented)");
f_Model_sendUDPpdu(valueof(p_UDPpdu));
}
/**
* @desc
* This function performs manipulation needed and sends a p_RadiusAccessAccept
* via the abstract test interface to the SUT.
* @param
* p_RadiusAccessAccept Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_RadiusAccessAccept_to_GiRadiusIn(template RadiusAccessAccept p_RadiusAccessAccept) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_RadiusAccessAccept); }
// Steps that need to be implemented here are:
// (modify and uncomment example code as needed)
// 1. transform data from a RadiusAccessAccept to the TTCN-3 data value used by the test harness (if needed)
// var <T3RadiusAccessAcceptType> v_T3RadiusAccessAccept := f_transformRadiusAccessAcceptCQtoT3(p_RadiusAccessAccept);
// 2. replace symbolic values (if any) with real values in TTCN-3 data value
// 3. send TTCN-3 data value via TTCN-3 port which corresponds toGiRadiusInmodel port
// GiRadiusIn.send(v_T3RadiusAccessAccept);
//GiRadiusIn.send(p_RadiusAccessAccept);
// Remove or comment the following generated code
log("CQ_INFO: Warning: f_cq_send_RadiusAccessAccept_to_GiRadiusIn: function is not implemented)");
}
/**
* @desc
* This function performs manipulation needed and sends a p_CreatePDPcontext
* via the abstract test interface to the SUT.
* @param
* p_CreatePDPcontext Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_CreatePDPcontext_to_GnIn(template CreatePDPcontext p_CreatePDPcontext) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_CreatePDPcontext); }
f_Model_sendCreatePDPContext(valueof(p_CreatePDPcontext));
}
/**
* @desc
* This function performs manipulation needed and sends a p_UpdatePDPcontext
* via the abstract test interface to the SUT.
* @param
* p_UpdatePDPcontext Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_UpdatePDPcontext_to_GnIn(template UpdatePDPcontext p_UpdatePDPcontext) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_UpdatePDPcontext); }
f_Model_sendUpdatePDPContext(valueof(p_UpdatePDPcontext));
}
/**
* @desc
* This function performs manipulation needed and sends a p_DeletePDPcontext
* via the abstract test interface to the SUT.
* @param
* p_DeletePDPcontext Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_DeletePDPcontext_to_GnIn(template DeletePDPcontext p_DeletePDPcontext) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_DeletePDPcontext); }
f_Model_sendDeletePDPContext(valueof(p_DeletePDPcontext));
}
/**
* @desc
* This function performs manipulation needed and sends a p_GPDU
* via the abstract test interface to the SUT.
* @param
* p_GPDU Message data generated by CQ Designerto be sent to the SUT
*/
function f_cq_send_GPDU_to_GnIn(template GPDU p_GPDU) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_GPDU); }
// Steps that need to be implemented here are:
// (modify and uncomment example code as needed)
// 1. transform data from a GPDU to the TTCN-3 data value used by the test harness (if needed)
// var <T3GPDUType> v_T3GPDU := f_transformGPDUCQtoT3(p_GPDU);
// 2. replace symbolic values (if any) with real values in TTCN-3 data value
// 3. send TTCN-3 data value via TTCN-3 port which corresponds toGnInmodel port
// GnIn.send(v_T3GPDU);
//GnIn.send(p_GPDU);
// Remove or comment the following generated code
//log("CQ_INFO: Warning: f_cq_send_GPDU_to_GnIn: function is not implemented)");
f_Model_sendGPDU(valueof(p_GPDU));
}
/**
* @desc
* This function receives a TTCN-3 value corresponding to a UDPpdu
* via the abstract test system interface from the SUT, performs any
* manipulation and transformation needed to convert it to a UDPpdu
* value, and then attempts to match it to the p_expectedUDPpdu generated by CQ Designer
* @param
* p_expectedUDPpduExpected data generated by CQ Designer
*/
function f_cq_receive_UDPpdu_from_GiOut(template UDPpdu p_expectedUDPpdu) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_expectedUDPpdu); }
//Steps that need to be implemented here are:
//1. receive and store (any) TTCN-3 data value via TTCN-3 port which corresponds to the GiOut model port
// var <T3_UDPpduType> v_recvT3UDPpdu;
// GiOut.receive(<T3_UDPpduType>:?) -> value v_recvT3UDPpdu;
// 2. replace real with symbolic values (if any) in the received TTCN-3 data value
// 3. transform data from a TTCN-3 to UDPpdu data value (if needed)
// varUDPpduv_recvUDPpdu = f_transformUDPpduT3toCQ(v_recvT3UDPpdu);
// 4. set the verdict to fail if if there is a mismatch of the transformed value and p_expectedUDPpdu
// if ( !match( v_recvUDPpdu p_expectedUDPpdu) {
// log(CQ_INFO: f_cq_receive_UDPpdu_from_GiOut: FAIL: Mismatch in received and expected UDPpdu values. Stopping test case.�);
// setverdict(fail);
// f_cq_f_MBT_Qtronic_endTestcase();
// stop; }
GiOut.receive(p_expectedUDPpdu);
// Remove or comment the following generated code
//log("CQ_INFO: Warning: f_cq_receive_UDPpdu_from_GiOut: function is not implemented)");
}
/**
* @desc
* This function receives a TTCN-3 value corresponding to a RadiusAccessRequest
* via the abstract test system interface from the SUT, performs any
* manipulation and transformation needed to convert it to a RadiusAccessRequest
* value, and then attempts to match it to the p_expectedRadiusAccessRequest generated by CQ Designer
* @param
* p_expectedRadiusAccessRequestExpected data generated by CQ Designer
*/
function f_cq_receive_RadiusAccessRequest_from_GiRadiusOut(template RadiusAccessRequest p_expectedRadiusAccessRequest) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_expectedRadiusAccessRequest); }
//Steps that need to be implemented here are:
//1. receive and store (any) TTCN-3 data value via TTCN-3 port which corresponds to the GiRadiusOut model port
// var <T3_RadiusAccessRequestType> v_recvT3RadiusAccessRequest;
// GiRadiusOut.receive(<T3_RadiusAccessRequestType>:?) -> value v_recvT3RadiusAccessRequest;
// 2. replace real with symbolic values (if any) in the received TTCN-3 data value
// 3. transform data from a TTCN-3 to RadiusAccessRequest data value (if needed)
// varRadiusAccessRequestv_recvRadiusAccessRequest = f_transformRadiusAccessRequestT3toCQ(v_recvT3RadiusAccessRequest);
// 4. set the verdict to fail if if there is a mismatch of the transformed value and p_expectedRadiusAccessRequest
// if ( !match( v_recvRadiusAccessRequest p_expectedRadiusAccessRequest) {
// log(CQ_INFO: f_cq_receive_RadiusAccessRequest_from_GiRadiusOut: FAIL: Mismatch in received and expected RadiusAccessRequest values. Stopping test case.�);
// setverdict(fail);
// f_cq_f_MBT_Qtronic_endTestcase();
// stop; }
//GiRadiusOut.receive(p_expectedRadiusAccessRequest);
// Remove or comment the following generated code
log("CQ_INFO: Warning: f_cq_receive_RadiusAccessRequest_from_GiRadiusOut: function is not implemented)");
}
/**
* @desc
* This function receives a TTCN-3 value corresponding to a CreatePDPresponse
* via the abstract test system interface from the SUT, performs any
* manipulation and transformation needed to convert it to a CreatePDPresponse
* value, and then attempts to match it to the p_expectedCreatePDPresponse generated by CQ Designer
* @param
* p_expectedCreatePDPresponseExpected data generated by CQ Designer
*/
function f_cq_receive_CreatePDPresponse_from_GnOut(template CreatePDPresponse p_expectedCreatePDPresponse) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_expectedCreatePDPresponse); }
GnOut.receive(p_expectedCreatePDPresponse);
}
/**
* @desc
* This function receives a TTCN-3 value corresponding to a UpdatePDPresponse
* via the abstract test system interface from the SUT, performs any
* manipulation and transformation needed to convert it to a UpdatePDPresponse
* value, and then attempts to match it to the p_expectedUpdatePDPresponse generated by CQ Designer
* @param
* p_expectedUpdatePDPresponseExpected data generated by CQ Designer
*/
function f_cq_receive_UpdatePDPresponse_from_GnOut(template UpdatePDPresponse p_expectedUpdatePDPresponse) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_expectedUpdatePDPresponse); }
GnOut.receive(p_expectedUpdatePDPresponse);
}
/**
* @desc
* This function receives a TTCN-3 value corresponding to a DeletePDPresponse
* via the abstract test system interface from the SUT, performs any
* manipulation and transformation needed to convert it to a DeletePDPresponse
* value, and then attempts to match it to the p_expectedDeletePDPresponse generated by CQ Designer
* @param
* p_expectedDeletePDPresponseExpected data generated by CQ Designer
*/
function f_cq_receive_DeletePDPresponse_from_GnOut(template DeletePDPresponse p_expectedDeletePDPresponse) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_expectedDeletePDPresponse); }
GnOut.receive(p_expectedDeletePDPresponse);
}
/**
* @desc
* This function receives a TTCN-3 value corresponding to a GPDU
* via the abstract test system interface from the SUT, performs any
* manipulation and transformation needed to convert it to a GPDU
* value, and then attempts to match it to the p_expectedGPDU generated by CQ Designer
* @param
* p_expectedGPDUExpected data generated by CQ Designer
*/
function f_cq_receive_GPDU_from_GnOut(template GPDU p_expectedGPDU) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_expectedGPDU); }
//Steps that need to be implemented here are:
//1. receive and store (any) TTCN-3 data value via TTCN-3 port which corresponds to the GnOut model port
// var <T3_GPDUType> v_recvT3GPDU;
// GnOut.receive(<T3_GPDUType>:?) -> value v_recvT3GPDU;
// 2. replace real with symbolic values (if any) in the received TTCN-3 data value
// 3. transform data from a TTCN-3 to GPDU data value (if needed)
// varGPDUv_recvGPDU = f_transformGPDUT3toCQ(v_recvT3GPDU);
// 4. set the verdict to fail if if there is a mismatch of the transformed value and p_expectedGPDU
// if ( !match( v_recvGPDU p_expectedGPDU) {
// log(CQ_INFO: f_cq_receive_GPDU_from_GnOut: FAIL: Mismatch in received and expected GPDU values. Stopping test case.�);
// setverdict(fail);
// f_cq_f_MBT_Qtronic_endTestcase();
// stop; }
GnOut.receive(p_expectedGPDU);
// Remove or comment the following generated code
//log("CQ_INFO: Warning: f_cq_receive_GPDU_from_GnOut: function is not implemented)");
}
/**
* @desc
* This function receives a TTCN-3 value corresponding to a CDRinfo
* via the abstract test system interface from the SUT, performs any
* manipulation and transformation needed to convert it to a CDRinfo
* value, and then attempts to match it to the p_expectedCDRinfo generated by CQ Designer
* @param
* p_expectedCDRinfoExpected data generated by CQ Designer
*/
function f_cq_receive_CDRinfo_from_GnOut(template CDRinfo p_expectedCDRinfo) runs on QtronicCT
{
if (tsp_enableLogging) { log(%definitionId, " enter: ", p_expectedCDRinfo); }
//Steps that need to be implemented here are:
//1. receive and store (any) TTCN-3 data value via TTCN-3 port which corresponds to the GnOut model port
// var <T3_CDRinfoType> v_recvT3CDRinfo;
// GnOut.receive(<T3_CDRinfoType>:?) -> value v_recvT3CDRinfo;
// 2. replace real with symbolic values (if any) in the received TTCN-3 data value
// 3. transform data from a TTCN-3 to CDRinfo data value (if needed)
// varCDRinfov_recvCDRinfo = f_transformCDRinfoT3toCQ(v_recvT3CDRinfo);
// 4. set the verdict to fail if if there is a mismatch of the transformed value and p_expectedCDRinfo
// if ( !match( v_recvCDRinfo p_expectedCDRinfo) {
// log(CQ_INFO: f_cq_receive_CDRinfo_from_GnOut: FAIL: Mismatch in received and expected CDRinfo values. Stopping test case.�);
// setverdict(fail);
// f_cq_f_MBT_Qtronic_endTestcase();
// stop; }
//GnOut.receive(p_expectedCDRinfo);
// Remove or comment the following generated code
log("CQ_INFO: Warning: f_cq_receive_CDRinfo_from_GnOut: function is not implemented)");
}
}