293 lines
8.0 KiB
Plaintext
293 lines
8.0 KiB
Plaintext
////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright Test Competence Center (TCC) ETH 2003
|
|
//
|
|
// The copyright to the computer program(s) herein is the property of TCC. //
|
|
// The program(s) may be used and/or copied only with the written permission //
|
|
// of TCC or in accordance with the terms and conditions stipulated in the //
|
|
// agreement/contract under which the program(s) have been supplied
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// File: mtp3test.cc
|
|
// Description: basic test for MTP3asp_PT
|
|
// Rev: <RnXnn>
|
|
// Prodnr: CNL 113 337
|
|
// Updated: 2004.06.02
|
|
// Contact: http://ttcn.ericsson.se
|
|
|
|
|
|
module mtp3test
|
|
{
|
|
|
|
modulepar
|
|
{
|
|
//mtp3test specific data:
|
|
//OCT1n MTP3_UserPart_SIO;
|
|
MTP3_Field_sio MTP3_UserPart_SIO;
|
|
integer MTP3_UserPart_OPC,
|
|
MTP3_UserPart_DPC,
|
|
MTP3_UserPart_SLS
|
|
};//modulepar
|
|
|
|
import from MTP3asp_Types all;
|
|
import from MTP3asp_PortType all;
|
|
|
|
/*************************************
|
|
* Components
|
|
**************************************/
|
|
|
|
/*
|
|
**************** 1: 2: ************************
|
|
* MTP3UserPart * <---------> * MTP3/M3UA in MSC *
|
|
**************** (MTP3port)************************
|
|
1: MTP3asp_PT MTP3_PCO alias: e.g. CMGW6
|
|
|
|
*/
|
|
|
|
type record of MTP3UserPart_CT CompArray;
|
|
|
|
type component MTC_CT
|
|
{
|
|
port MTP3asp_PT MTC_PCO;
|
|
var MTP3UserPart_CT vc_MTP3UserPart_BSC1A;
|
|
var MTP3UserPart_CT vc_MTP3UserPart_BSC1B;
|
|
var MTP3UserPart_CT vc_MTP3UserPart_BSC1C;
|
|
var MTP3UserPart_CT vc_MTP3UserPart_CMGW3;
|
|
var MTP3UserPart_CT vc_MTP3UserPart_CMGW6;
|
|
var MTP3UserPart_CT vc_MTP3UserPart_CMGW9;
|
|
var MTP3UserPart_CT vc_compArray[6];
|
|
};
|
|
|
|
// Model of MSC:
|
|
type component MSC_SCT
|
|
{
|
|
port MTP3asp_PT BSC1A;
|
|
port MTP3asp_PT BSC1B;
|
|
port MTP3asp_PT BSC1C;
|
|
port MTP3asp_PT CMGW3;
|
|
port MTP3asp_PT CMGW6;
|
|
port MTP3asp_PT CMGW9;
|
|
};
|
|
|
|
//Model of SS7 MTP3 User Part for Self Test. Only logs the messages
|
|
type component MTP3UserPart_CT
|
|
{
|
|
var ASP_MTP3_TRANSFERind v_MTP3_TRANSFERind;
|
|
var ASP_MTP3_TRANSFERreq v_MTP3_TRANSFERreq;
|
|
port MTP3asp_PT MTP3_PCO;
|
|
// port ... to the upper layers
|
|
} // end component type definition
|
|
|
|
/*
|
|
function MTC_delay(integer time) runs on MTC_CT {
|
|
timer t:=time;
|
|
t.start;
|
|
setverdict(none);
|
|
alt{ []t.timeout {} }
|
|
}
|
|
*/
|
|
|
|
function mtp3_selftest( ) runs on MTP3UserPart_CT
|
|
{
|
|
timer t_Guard := 6.0;
|
|
log( "mtp3_selftest started");
|
|
t_Guard.start;
|
|
setverdict(none);
|
|
alt
|
|
{
|
|
[] MTP3_PCO.receive ( ASP_MTP3_TRANSFERind:?) -> value v_MTP3_TRANSFERind
|
|
{
|
|
log("ASP_MTP3_TRANSFERind: received");
|
|
setverdict(pass);
|
|
repeat;
|
|
}
|
|
[] MTP3_PCO.receive
|
|
{
|
|
log("Unknown signal received");
|
|
setverdict(pass);
|
|
repeat;
|
|
}
|
|
[] t_Guard.timeout
|
|
{ log("timeout reached");}
|
|
} //alt
|
|
log("mtp3_selftest finished");
|
|
}
|
|
|
|
function f_init( ) runs on MTC_CT
|
|
{
|
|
vc_MTP3UserPart_BSC1A := MTP3UserPart_CT.create;
|
|
vc_MTP3UserPart_BSC1B := MTP3UserPart_CT.create;
|
|
vc_MTP3UserPart_BSC1C := MTP3UserPart_CT.create;
|
|
vc_MTP3UserPart_CMGW3 := MTP3UserPart_CT.create;
|
|
vc_MTP3UserPart_CMGW6 := MTP3UserPart_CT.create;
|
|
vc_MTP3UserPart_CMGW9 := MTP3UserPart_CT.create;
|
|
|
|
map(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
|
|
map(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
|
|
map(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
|
|
map(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
|
|
map(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
|
|
map(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);
|
|
|
|
log("tc_3 map is ready");
|
|
}
|
|
|
|
function f_start() runs on MTC_CT
|
|
{
|
|
vc_MTP3UserPart_BSC1A.start( mtp3userpart_test() );
|
|
vc_MTP3UserPart_BSC1B.start( mtp3userpart_test() );
|
|
vc_MTP3UserPart_BSC1C.start( mtp3userpart_test() );
|
|
vc_MTP3UserPart_CMGW3.start( mtp3userpart_test() );
|
|
vc_MTP3UserPart_CMGW6.start( mtp3userpart_test() );
|
|
vc_MTP3UserPart_CMGW9.start( mtp3userpart_test() );
|
|
}
|
|
|
|
function f_terminate() runs on MTC_CT
|
|
{
|
|
all component.done;
|
|
unmap(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
|
|
unmap(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
|
|
unmap(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
|
|
unmap(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
|
|
unmap(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
|
|
unmap(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);
|
|
}
|
|
|
|
function mtp3userpart_test( ) runs on MTP3UserPart_CT {
|
|
timer t_Guard := 5.0;
|
|
log( "mtp3userpart_test started");
|
|
v_MTP3_TRANSFERreq :=
|
|
{
|
|
sio := MTP3_UserPart_SIO,
|
|
opc := MTP3_UserPart_OPC,
|
|
dpc := MTP3_UserPart_DPC,
|
|
sls := 0,
|
|
data:= '010203040506070809000102030405060708090000010203040506070809000000'O
|
|
};
|
|
MTP3_PCO.send( v_MTP3_TRANSFERreq );
|
|
t_Guard.start;
|
|
setverdict(none);
|
|
alt
|
|
{
|
|
[] MTP3_PCO.receive ( ASP_MTP3_TRANSFERind:? ) -> value v_MTP3_TRANSFERind
|
|
{
|
|
log("ASP_MTP3_TRANSFERind: received");
|
|
setverdict(pass);
|
|
repeat;
|
|
}
|
|
[] MTP3_PCO.receive
|
|
{
|
|
log("Unknown signal received");
|
|
setverdict(pass);
|
|
repeat;
|
|
}
|
|
[] t_Guard.timeout
|
|
{
|
|
//setverdict(inconc);
|
|
log("timeout reached");
|
|
}
|
|
} //alt
|
|
log("mtp3userpart_test finished");
|
|
}
|
|
|
|
testcase tc_1() runs on MTC_CT system MSC_SCT
|
|
{
|
|
log ("tc_1 started");
|
|
var MTP3UserPart_CT vc_MTP3userpart;
|
|
vc_MTP3userpart := MTP3UserPart_CT.create;
|
|
map(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
|
|
log("map is ready");
|
|
vc_MTP3userpart.start( mtp3_selftest() );
|
|
//MTC_delay(6);
|
|
vc_MTP3userpart.done;
|
|
unmap(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
|
|
log ("tc_1 finished");
|
|
}
|
|
|
|
// TC2: Testcase sending one simple message "MTP-transfer-req" and waiting
|
|
testcase tc_2() runs on MTC_CT system MSC_SCT
|
|
{
|
|
log ("tc_2 started");
|
|
var MTP3UserPart_CT vc_MTP3userpart;
|
|
vc_MTP3userpart := MTP3UserPart_CT.create;
|
|
map(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
|
|
log("map is ready");
|
|
vc_MTP3userpart.start( mtp3userpart_test() );
|
|
//MTC_delay(6);
|
|
vc_MTP3userpart.done;
|
|
unmap(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
|
|
log ("tc_2 finished");
|
|
}
|
|
|
|
testcase tc_3() runs on MTC_CT system MSC_SCT
|
|
{
|
|
log ("tc_3 started");
|
|
vc_MTP3UserPart_BSC1A := MTP3UserPart_CT.create;
|
|
vc_MTP3UserPart_BSC1B := MTP3UserPart_CT.create;
|
|
vc_MTP3UserPart_BSC1C := MTP3UserPart_CT.create;
|
|
vc_MTP3UserPart_CMGW3 := MTP3UserPart_CT.create;
|
|
vc_MTP3UserPart_CMGW6 := MTP3UserPart_CT.create;
|
|
vc_MTP3UserPart_CMGW9 := MTP3UserPart_CT.create;
|
|
|
|
map(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
|
|
map(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
|
|
map(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
|
|
map(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
|
|
map(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
|
|
map(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);
|
|
|
|
log("tc_3 map is ready");
|
|
vc_MTP3UserPart_BSC1A.start( mtp3userpart_test() );
|
|
vc_MTP3UserPart_BSC1B.start( mtp3userpart_test() );
|
|
vc_MTP3UserPart_BSC1C.start( mtp3userpart_test() );
|
|
vc_MTP3UserPart_CMGW3.start( mtp3userpart_test() );
|
|
vc_MTP3UserPart_CMGW6.start( mtp3userpart_test() );
|
|
vc_MTP3UserPart_CMGW9.start( mtp3userpart_test() );
|
|
|
|
//MTC_delay(6);
|
|
all component.done;
|
|
unmap(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
|
|
unmap(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
|
|
unmap(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
|
|
unmap(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
|
|
unmap(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
|
|
unmap(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);
|
|
log ("tc_3 finished");
|
|
}
|
|
|
|
// tc_4 is the same as tc_3 but organized by arrays and cycles
|
|
testcase tc_4() runs on MTC_CT system MSC_SCT
|
|
{
|
|
f_init();
|
|
f_start();
|
|
f_terminate();
|
|
}
|
|
|
|
testcase tc_5() runs on MTC_CT
|
|
{
|
|
var ASP_MTP3_TRANSFERreq vl_MTP3_TRANSFERreq :=
|
|
{ sio :=
|
|
{ ni := '00'B,
|
|
prio := '00'B,
|
|
si := '0000'B
|
|
},
|
|
opc := 0,
|
|
dpc := 0,
|
|
sls := 0,
|
|
data:= '010203040506070809000102030405060708090000010203040506070809000000'O
|
|
};
|
|
|
|
map(self:MTC_PCO,system:MTC_PCO);
|
|
MTC_PCO.send(vl_MTP3_TRANSFERreq);
|
|
MTC_PCO.receive;
|
|
unmap(self:MTC_PCO,system:MTC_PCO);
|
|
}
|
|
|
|
control
|
|
{
|
|
execute (tc_1());
|
|
}
|
|
|
|
}//module
|