| //////////////////////////////////////////////////////////////////////////////// |
| // |
| // 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 |