Harald Welte | ac35980 | 2017-04-12 12:13:44 +0200 | [diff] [blame] | 1 | //////////////////////////////////////////////////////////////////////////////// |
| 2 | // |
| 3 | // Copyright Test Competence Center (TCC) ETH 2003 |
| 4 | // |
| 5 | // The copyright to the computer program(s) herein is the property of TCC. // |
| 6 | // The program(s) may be used and/or copied only with the written permission // |
| 7 | // of TCC or in accordance with the terms and conditions stipulated in the // |
| 8 | // agreement/contract under which the program(s) have been supplied |
| 9 | // |
| 10 | /////////////////////////////////////////////////////////////////////////////// |
| 11 | // |
| 12 | // File: mtp3test.cc |
| 13 | // Description: basic test for MTP3asp_PT |
| 14 | // Rev: <RnXnn> |
| 15 | // Prodnr: CNL 113 337 |
| 16 | // Updated: 2004.06.02 |
| 17 | // Contact: http://ttcn.ericsson.se |
| 18 | |
| 19 | |
| 20 | module mtp3test |
| 21 | { |
| 22 | |
| 23 | modulepar |
| 24 | { |
| 25 | //mtp3test specific data: |
| 26 | //OCT1n MTP3_UserPart_SIO; |
| 27 | MTP3_Field_sio MTP3_UserPart_SIO; |
| 28 | integer MTP3_UserPart_OPC, |
| 29 | MTP3_UserPart_DPC, |
| 30 | MTP3_UserPart_SLS |
| 31 | };//modulepar |
| 32 | |
| 33 | import from MTP3asp_Types all; |
| 34 | import from MTP3asp_PortType all; |
| 35 | |
| 36 | /************************************* |
| 37 | * Components |
| 38 | **************************************/ |
| 39 | |
| 40 | /* |
| 41 | **************** 1: 2: ************************ |
| 42 | * MTP3UserPart * <---------> * MTP3/M3UA in MSC * |
| 43 | **************** (MTP3port)************************ |
| 44 | 1: MTP3asp_PT MTP3_PCO alias: e.g. CMGW6 |
| 45 | |
| 46 | */ |
| 47 | |
| 48 | type record of MTP3UserPart_CT CompArray; |
| 49 | |
| 50 | type component MTC_CT |
| 51 | { |
| 52 | port MTP3asp_PT MTC_PCO; |
| 53 | var MTP3UserPart_CT vc_MTP3UserPart_BSC1A; |
| 54 | var MTP3UserPart_CT vc_MTP3UserPart_BSC1B; |
| 55 | var MTP3UserPart_CT vc_MTP3UserPart_BSC1C; |
| 56 | var MTP3UserPart_CT vc_MTP3UserPart_CMGW3; |
| 57 | var MTP3UserPart_CT vc_MTP3UserPart_CMGW6; |
| 58 | var MTP3UserPart_CT vc_MTP3UserPart_CMGW9; |
| 59 | var MTP3UserPart_CT vc_compArray[6]; |
| 60 | }; |
| 61 | |
| 62 | // Model of MSC: |
| 63 | type component MSC_SCT |
| 64 | { |
| 65 | port MTP3asp_PT BSC1A; |
| 66 | port MTP3asp_PT BSC1B; |
| 67 | port MTP3asp_PT BSC1C; |
| 68 | port MTP3asp_PT CMGW3; |
| 69 | port MTP3asp_PT CMGW6; |
| 70 | port MTP3asp_PT CMGW9; |
| 71 | }; |
| 72 | |
| 73 | //Model of SS7 MTP3 User Part for Self Test. Only logs the messages |
| 74 | type component MTP3UserPart_CT |
| 75 | { |
| 76 | var ASP_MTP3_TRANSFERind v_MTP3_TRANSFERind; |
| 77 | var ASP_MTP3_TRANSFERreq v_MTP3_TRANSFERreq; |
| 78 | port MTP3asp_PT MTP3_PCO; |
| 79 | // port ... to the upper layers |
| 80 | } // end component type definition |
| 81 | |
| 82 | /* |
| 83 | function MTC_delay(integer time) runs on MTC_CT { |
| 84 | timer t:=time; |
| 85 | t.start; |
| 86 | setverdict(none); |
| 87 | alt{ []t.timeout {} } |
| 88 | } |
| 89 | */ |
| 90 | |
| 91 | function mtp3_selftest( ) runs on MTP3UserPart_CT |
| 92 | { |
| 93 | timer t_Guard := 6.0; |
| 94 | log( "mtp3_selftest started"); |
| 95 | t_Guard.start; |
| 96 | setverdict(none); |
| 97 | alt |
| 98 | { |
| 99 | [] MTP3_PCO.receive ( ASP_MTP3_TRANSFERind:?) -> value v_MTP3_TRANSFERind |
| 100 | { |
| 101 | log("ASP_MTP3_TRANSFERind: received"); |
| 102 | setverdict(pass); |
| 103 | repeat; |
| 104 | } |
| 105 | [] MTP3_PCO.receive |
| 106 | { |
| 107 | log("Unknown signal received"); |
| 108 | setverdict(pass); |
| 109 | repeat; |
| 110 | } |
| 111 | [] t_Guard.timeout |
| 112 | { log("timeout reached");} |
| 113 | } //alt |
| 114 | log("mtp3_selftest finished"); |
| 115 | } |
| 116 | |
| 117 | function f_init( ) runs on MTC_CT |
| 118 | { |
| 119 | vc_MTP3UserPart_BSC1A := MTP3UserPart_CT.create; |
| 120 | vc_MTP3UserPart_BSC1B := MTP3UserPart_CT.create; |
| 121 | vc_MTP3UserPart_BSC1C := MTP3UserPart_CT.create; |
| 122 | vc_MTP3UserPart_CMGW3 := MTP3UserPart_CT.create; |
| 123 | vc_MTP3UserPart_CMGW6 := MTP3UserPart_CT.create; |
| 124 | vc_MTP3UserPart_CMGW9 := MTP3UserPart_CT.create; |
| 125 | |
| 126 | map(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A); |
| 127 | map(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B); |
| 128 | map(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C); |
| 129 | map(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3); |
| 130 | map(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6); |
| 131 | map(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9); |
| 132 | |
| 133 | log("tc_3 map is ready"); |
| 134 | } |
| 135 | |
| 136 | function f_start() runs on MTC_CT |
| 137 | { |
| 138 | vc_MTP3UserPart_BSC1A.start( mtp3userpart_test() ); |
| 139 | vc_MTP3UserPart_BSC1B.start( mtp3userpart_test() ); |
| 140 | vc_MTP3UserPart_BSC1C.start( mtp3userpart_test() ); |
| 141 | vc_MTP3UserPart_CMGW3.start( mtp3userpart_test() ); |
| 142 | vc_MTP3UserPart_CMGW6.start( mtp3userpart_test() ); |
| 143 | vc_MTP3UserPart_CMGW9.start( mtp3userpart_test() ); |
| 144 | } |
| 145 | |
| 146 | function f_terminate() runs on MTC_CT |
| 147 | { |
| 148 | all component.done; |
| 149 | unmap(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A); |
| 150 | unmap(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B); |
| 151 | unmap(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C); |
| 152 | unmap(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3); |
| 153 | unmap(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6); |
| 154 | unmap(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9); |
| 155 | } |
| 156 | |
| 157 | function mtp3userpart_test( ) runs on MTP3UserPart_CT { |
| 158 | timer t_Guard := 5.0; |
| 159 | log( "mtp3userpart_test started"); |
| 160 | v_MTP3_TRANSFERreq := |
| 161 | { |
| 162 | sio := MTP3_UserPart_SIO, |
| 163 | opc := MTP3_UserPart_OPC, |
| 164 | dpc := MTP3_UserPart_DPC, |
| 165 | sls := 0, |
| 166 | data:= '010203040506070809000102030405060708090000010203040506070809000000'O |
| 167 | }; |
| 168 | MTP3_PCO.send( v_MTP3_TRANSFERreq ); |
| 169 | t_Guard.start; |
| 170 | setverdict(none); |
| 171 | alt |
| 172 | { |
| 173 | [] MTP3_PCO.receive ( ASP_MTP3_TRANSFERind:? ) -> value v_MTP3_TRANSFERind |
| 174 | { |
| 175 | log("ASP_MTP3_TRANSFERind: received"); |
| 176 | setverdict(pass); |
| 177 | repeat; |
| 178 | } |
| 179 | [] MTP3_PCO.receive |
| 180 | { |
| 181 | log("Unknown signal received"); |
| 182 | setverdict(pass); |
| 183 | repeat; |
| 184 | } |
| 185 | [] t_Guard.timeout |
| 186 | { |
| 187 | //setverdict(inconc); |
| 188 | log("timeout reached"); |
| 189 | } |
| 190 | } //alt |
| 191 | log("mtp3userpart_test finished"); |
| 192 | } |
| 193 | |
| 194 | testcase tc_1() runs on MTC_CT system MSC_SCT |
| 195 | { |
| 196 | log ("tc_1 started"); |
| 197 | var MTP3UserPart_CT vc_MTP3userpart; |
| 198 | vc_MTP3userpart := MTP3UserPart_CT.create; |
| 199 | map(vc_MTP3userpart:MTP3_PCO, system:CMGW6); |
| 200 | log("map is ready"); |
| 201 | vc_MTP3userpart.start( mtp3_selftest() ); |
| 202 | //MTC_delay(6); |
| 203 | vc_MTP3userpart.done; |
| 204 | unmap(vc_MTP3userpart:MTP3_PCO, system:CMGW6); |
| 205 | log ("tc_1 finished"); |
| 206 | } |
| 207 | |
| 208 | // TC2: Testcase sending one simple message "MTP-transfer-req" and waiting |
| 209 | testcase tc_2() runs on MTC_CT system MSC_SCT |
| 210 | { |
| 211 | log ("tc_2 started"); |
| 212 | var MTP3UserPart_CT vc_MTP3userpart; |
| 213 | vc_MTP3userpart := MTP3UserPart_CT.create; |
| 214 | map(vc_MTP3userpart:MTP3_PCO, system:CMGW6); |
| 215 | log("map is ready"); |
| 216 | vc_MTP3userpart.start( mtp3userpart_test() ); |
| 217 | //MTC_delay(6); |
| 218 | vc_MTP3userpart.done; |
| 219 | unmap(vc_MTP3userpart:MTP3_PCO, system:CMGW6); |
| 220 | log ("tc_2 finished"); |
| 221 | } |
| 222 | |
| 223 | testcase tc_3() runs on MTC_CT system MSC_SCT |
| 224 | { |
| 225 | log ("tc_3 started"); |
| 226 | vc_MTP3UserPart_BSC1A := MTP3UserPart_CT.create; |
| 227 | vc_MTP3UserPart_BSC1B := MTP3UserPart_CT.create; |
| 228 | vc_MTP3UserPart_BSC1C := MTP3UserPart_CT.create; |
| 229 | vc_MTP3UserPart_CMGW3 := MTP3UserPart_CT.create; |
| 230 | vc_MTP3UserPart_CMGW6 := MTP3UserPart_CT.create; |
| 231 | vc_MTP3UserPart_CMGW9 := MTP3UserPart_CT.create; |
| 232 | |
| 233 | map(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A); |
| 234 | map(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B); |
| 235 | map(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C); |
| 236 | map(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3); |
| 237 | map(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6); |
| 238 | map(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9); |
| 239 | |
| 240 | log("tc_3 map is ready"); |
| 241 | vc_MTP3UserPart_BSC1A.start( mtp3userpart_test() ); |
| 242 | vc_MTP3UserPart_BSC1B.start( mtp3userpart_test() ); |
| 243 | vc_MTP3UserPart_BSC1C.start( mtp3userpart_test() ); |
| 244 | vc_MTP3UserPart_CMGW3.start( mtp3userpart_test() ); |
| 245 | vc_MTP3UserPart_CMGW6.start( mtp3userpart_test() ); |
| 246 | vc_MTP3UserPart_CMGW9.start( mtp3userpart_test() ); |
| 247 | |
| 248 | //MTC_delay(6); |
| 249 | all component.done; |
| 250 | unmap(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A); |
| 251 | unmap(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B); |
| 252 | unmap(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C); |
| 253 | unmap(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3); |
| 254 | unmap(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6); |
| 255 | unmap(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9); |
| 256 | log ("tc_3 finished"); |
| 257 | } |
| 258 | |
| 259 | // tc_4 is the same as tc_3 but organized by arrays and cycles |
| 260 | testcase tc_4() runs on MTC_CT system MSC_SCT |
| 261 | { |
| 262 | f_init(); |
| 263 | f_start(); |
| 264 | f_terminate(); |
| 265 | } |
| 266 | |
| 267 | testcase tc_5() runs on MTC_CT |
| 268 | { |
| 269 | var ASP_MTP3_TRANSFERreq vl_MTP3_TRANSFERreq := |
| 270 | { sio := |
| 271 | { ni := '00'B, |
| 272 | prio := '00'B, |
| 273 | si := '0000'B |
| 274 | }, |
| 275 | opc := 0, |
| 276 | dpc := 0, |
| 277 | sls := 0, |
| 278 | data:= '010203040506070809000102030405060708090000010203040506070809000000'O |
| 279 | }; |
| 280 | |
| 281 | map(self:MTC_PCO,system:MTC_PCO); |
| 282 | MTC_PCO.send(vl_MTP3_TRANSFERreq); |
| 283 | MTC_PCO.receive; |
| 284 | unmap(self:MTC_PCO,system:MTC_PCO); |
| 285 | } |
| 286 | |
| 287 | control |
| 288 | { |
| 289 | execute (tc_1()); |
| 290 | } |
| 291 | |
| 292 | }//module |