ItsSpatem_TpFunctions.ttcn 25.6 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/**
 *    @author   ETSI STF517
 *    @version  $URL$
 *              $Id$
 *    @desc     SPATEM TP functions
 *
 */

module ItsSpatem_TpFunctions {
    
    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_Sync all;
    import from LibCommon_VerdictControl all;
    import from LibCommon_Time all;
    
    // LibItsCommon
    import from LibItsCommon_Functions all;
    import from LibItsCommon_TypesAndValues all;
    
    // LibIts
    import from ITS_Container language "ASN.1:1997" all;
    import from MAPEM_PDU_Descriptions language "ASN.1:1997" all;
    import from SPATEM_PDU_Descriptions language "ASN.1:1997" all;
    import from DSRC language "ASN.1:1997" all;
    
    // LibItsMapemSpatem
    import from LibItsMapemSpatem_TestSystem all;
    import from LibItsMapemSpatem_Functions all;
    import from LibItsMapemSpatem_Templates all;
    import from LibItsMapemSpatem_TypesAndValues all;
    import from LibItsMapemSpatem_Pics all;
    
    group spateMessageDissemination { 
        
        group spateMessageFormat { 
            
            /**
             * @desc    TP Function for TC_IS_RLT_MSGF_BV_01
             */
            function f_IS_TLM_MSGF_BV_01 () runs on ItsMapemSpatem {
                
                // Local variables
                
                // Test control
garciay's avatar
garciay committed
46
47
                if (not PICS_RSU_ROLE or not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_RSU_ROLE and PICS_SPATEM_GENERATION required for executing the TC ***");
48
49
50
51
52
53
54
55
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
garciay's avatar
garciay committed
56
                f_prInitialState();
57
                f_utTriggerEvent(m_utTriggerEvent(startTLMService));
garciay's avatar
garciay committed
58
59
                // Wait for SPATEM sent
                tc_ac.start(2.0);
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu
                    )) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received SAPTEM PDU header. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_MSGF_BV_01
            
        } // End of group spateMessageFormat
        
garciay's avatar
garciay committed
88
        group spateEventGeneration { 
89
90
            
            /**
garciay's avatar
garciay committed
91
             * @desc    TP Function for f_IS_TLM_EVGN_BV_01
92
             */
garciay's avatar
garciay committed
93
            function f_IS_TLM_EVGN_BV_01() runs on ItsMapemSpatem {
94
95
96
97
                
                // Local variables
                
                // Test control
garciay's avatar
garciay committed
98
99
                if (not PICS_RSU_ROLE or not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_RSU_ROLE and PICS_SPATEM_GENERATION required for executing the TC ***");
100
101
102
103
104
105
106
107
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
108
                f_prInitialState();
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
                f_utTriggerEvent(m_utTriggerEvent(startTLMService));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_spatemWellFormatted
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received well-formed SPATEM. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_defaultSpatem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Received a SPATEM with incorrect information. ***");
                        f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_EVGN_BV_01
            
            /**
garciay's avatar
garciay committed
147
             * @desc    TP Function for f_IS_TLM_EVGN_BV_02
148
             */
garciay's avatar
garciay committed
149
            function f_IS_TLM_EVGN_BV_02() runs on ItsMapemSpatem {
150
151
152
153
154
                
                // Local variables
                var SpatemInd v_spatem;
                
                // Test control
garciay's avatar
garciay committed
155
156
                if (not PICS_RSU_ROLE or not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_RSU_ROLE and PICS_SPATEM_GENERATION required for executing the TC ***");
157
158
159
160
161
162
163
164
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
garciay's avatar
garciay committed
165
                f_prInitialState();
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
                f_utTriggerEvent(m_utTriggerEvent(startTLMService));
                f_awaitSpateMessage(
                    mw_spatemInd(
                        mw_spatemPdu(
                            mw_spatemWellFormatted
                        )
                    ), 
                    v_spatem
                );
                
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(spatemNewContent));
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(v_spatem) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: The same SPATEM was received. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_spatemWellFormatted
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received a new well-formed SPATE message. ***");
                        f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_defaultSpatem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Received a SPATEM with incorrect information. ***");
                        f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_EVGN_BV_02
            
            /**
garciay's avatar
garciay committed
217
             * @desc    TP Function for f_IS_TLM_EVGN_BV_03
218
             */
garciay's avatar
garciay committed
219
            function f_IS_TLM_EVGN_BV_03() runs on ItsMapemSpatem { // TODO Move ito spateEventTermination goup
220
221
222
223
                
                // Local variables
                
                // Test control
garciay's avatar
garciay committed
224
225
                if (not PICS_RSU_ROLE or not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_RSU_ROLE and PICS_SPATEM_GENERATION required for executing the TC ***");
226
227
228
229
230
231
232
233
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
234
                f_prInitialState();
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
                f_utTriggerEvent(m_utTriggerEvent(startTLMService));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                mapemSpatemPort.clear;
                tc_noac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_defaultSpatem
                    ))) { 
                        tc_noac.stop;
                        log("*** " & testcasename() & ": FAIL: No more SPATEM messages were expected. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] tc_noac.timeout {
                        log("*** " & testcasename() & ": PASS: TLM Service terminated. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                }
                    
                // Postamble
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_EVGN_BV_03
            
            /**
garciay's avatar
garciay committed
265
             * @desc    TP Function for f_IS_TLM_EVGN_BV_04
266
             */
garciay's avatar
garciay committed
267
            function f_IS_TLM_EVGN_BV_04() runs on ItsMapemSpatem {
268
269
270
271
272
                
                // Local variables
                var SpatemInd v_spatem;
                
                // Test control
garciay's avatar
garciay committed
273
274
                if (not PICS_RSU_ROLE or not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_RSU_ROLE and PICS_SPATEM_GENERATION required for executing the TC ***");
275
276
277
278
279
280
281
282
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
garciay's avatar
garciay committed
283
                f_prInitialState();
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
                f_utTriggerEvent(m_utTriggerEvent(startTLMService));
                f_awaitSpateMessage(
                    mw_spatemInd(
                        mw_spatemPdu(
                            mw_defaultSpatem
                        )
                    ), 
                    v_spatem
                );
                
                // Test Body
                f_utTriggerEvent(m_utTriggerEvent(spatemNewContent));
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(v_spatem) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: A different SPATE message was expected. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_spatemWellFormatted
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received a new well-formed SPATE message. ***");
                        f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_defaultSpatem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Received a SPATEM with incorrect information. ***");
                        f_selfOrClientSyncAndVerdictPreamble(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_EVGN_BV_04
            
garciay's avatar
garciay committed
334
        } // End of group spateEventGeneration
335
336
337
338
        
        group spateCommunication {
            
            /**
garciay's avatar
garciay committed
339
             * @desc    TP Function for f_IS_TLM_COMM_BV_01
340
             */
garciay's avatar
garciay committed
341
            function f_IS_TLM_COMM_BV_01 () runs on ItsMapemSpatem {
342
343
344
                
                // Local variables
                
garciay's avatar
garciay committed
345
346
347
348
349
350
351
                // Test control
                if (not PICS_RSU_ROLE or not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_RSU_ROLE and PICS_SPATEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
352
353
354
355
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
356
                f_prInitialState();
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
                f_utTriggerEvent(m_utTriggerEvent(startTLMService));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                           mw_spatemPdu(
                               mw_spatem_with_region_id
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received MAPEM using GBC. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_COMM_BV_01
            
            /**
garciay's avatar
garciay committed
386
             * @desc    TP Function for f_IS_TLM_COMM_BV_02_01
387
             */
garciay's avatar
garciay committed
388
            function f_IS_TLM_COMM_BV_02_01 () runs on ItsMapemSpatem {
389
390
391
392
                
                // Local variables
                const UInt8 c_gnNhBtpB := 2;
                
garciay's avatar
garciay committed
393
394
395
396
397
398
399
                // Test control
                if (not PICS_RSU_ROLE or not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_RSU_ROLE and PICS_SPATEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
400
401
402
403
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
404
                f_prInitialState();
405
406
407
408
409
410
411
412
413
414
415
416
                f_utTriggerEvent(m_utTriggerEvent(startTLMService));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemIndWithGnParameters(
                           mw_spatemPdu, 
                           c_gnNhBtpB
                    )) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
417
                        log("*** " & testcasename() & ": PASS: Expected SPATEM encapsultated in BTP-B packet received. ***");
418
419
420
421
422
423
424
425
426
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(mw_spatemIndWithGnParameters(mw_spatemPdu(mw_defaultSpatem), omit)) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: no GN NH information in SpatemInd ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);  
                    }                    
                    [] mapemSpatemPort.receive(mw_spatemInd(mw_spatemPdu(mw_defaultSpatem))) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
427
                        log("*** " & testcasename() & ": FAIL: Expected SPATEM received, but not encapsulated in BTP-B packet ***");
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);  
                    }                    
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_COMM_BV_02_01
            
            /**
garciay's avatar
garciay committed
444
             * @desc    TP Function for f_IS_TLM_COMM_BV_02_02
445
             */
garciay's avatar
garciay committed
446
            function f_IS_TLM_COMM_BV_02_02 () runs on ItsMapemSpatem {
447
448
449
450
                
                // Local variables
                const UInt16 c_gnNhBtpBPort := 2004;
                
garciay's avatar
garciay committed
451
452
453
454
455
456
457
                // Test control
                if (not PICS_RSU_ROLE or not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_RSU_ROLE and PICS_SPATEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
458
459
460
461
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
462
                f_prInitialState();
463
464
465
466
467
468
469
470
471
472
473
474
475
                f_utTriggerEvent(m_utTriggerEvent(startTLMService));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemIndWithBtpParameters(
                           mw_spatemPdu, 
                           c_gnNhBtpBPort,
                           0
                    )) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
476
                        log("*** " & testcasename() & ": PASS: Expected SPATEM encapsultated in BTP packet with port value 2004 received. ***");
477
478
479
480
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(mw_spatemInd(mw_spatemPdu(mw_defaultSpatem))) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
481
                        log("*** " & testcasename() & ": FAIL: Expected SPATEM received, but not addressed to the correct destination port. ***");
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);  
                    }                    
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_COMM_BV_02_02
            
            /**
garciay's avatar
garciay committed
498
             * @desc    TP Function for f_IS_TLM_COMM_BV_03
499
             */
garciay's avatar
garciay committed
500
            function f_IS_TLM_COMM_BV_03 () runs on ItsMapemSpatem {
501
502
503
504
                
                // Local variables
                const UInt8 c_gnHtGbc := 4;
                
garciay's avatar
garciay committed
505
506
507
508
509
510
511
                // Test control
                if (not PICS_RSU_ROLE or not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_RSU_ROLE and PICS_SPATEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
512
513
514
515
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
516
                f_prInitialState();
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
                f_utTriggerEvent(m_utTriggerEvent(startTLMService));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemIndWithGnParameters(
                           mw_spatemPdu(
                               mw_spatemWellFormatted
                           ),
                           -,
                           c_gnHtGbc
                    )) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
532
                        log("*** " & testcasename() & ": PASS: Expected SPATEM encapsulated in GBC packet received. ***");
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemIndWithGnParameters(
                           mw_spatemPdu(
                               mw_spatemWellFormatted
                           ),
                           -,
                           omit
                    )) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Eno GN HT information in SpatemInd. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                           mw_spatemPdu(
                               mw_spatemWellFormatted
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Expected SPATEM received, but not encapsulated in GBC packet. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
                f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_COMM_BV_03
            
        } // End of group spateCommunication 
        
    } // End of group spateMessageDissemination
    
    group spateMessageProcessing {
            
            /**
garciay's avatar
garciay committed
576
             * @desc    TP Function for f_IS_TLM_MSGF_BV_02
577
             */
garciay's avatar
garciay committed
578
            function f_IS_TLM_MSGF_BV_02 () runs on ItsMapemSpatem {
579
580
581
582
583
                    
                // Local variables
                var SpatemReq   v_spatemReq;
                var integer     i;
                
garciay's avatar
garciay committed
584
585
                if (PICS_RSU_ROLE and not PICS_SPATEM_RECEPTION) {
                    log("*** " & testcasename() & ": not PICS_RSU_ROLE and PICS_SPATEM_RECEPTION required for executing the TC ***");
586
587
588
589
590
591
592
593
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
594
                f_prInitialState();
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
                v_spatemReq := valueof(m_spatemReq(m_spatemPdu(m_spat)));
                mapemSpatemPort.send(v_spatemReq) ;
                
                f_sleep(PX_TAC);
                for (i := 0; i < lengthof(vc_utSpatemEvents) and not match (v_spatemReq.msgOut , vc_utSpatemEvents[i].spateMsg); i := i + 1) {
                    // empty on purpose 
                }
                if (i < lengthof(vc_utSpatemEvents) ) {
                    log("*** " & testcasename() & ": PASS: SPATEM was transmitted to upper layer ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                } else {
                    log("*** " & testcasename() & ": FAIL: SPATEM was not transmitted to upper layer ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                }
                
                // Postamble
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_MSGF_BV_02
            
    } // End of group spateMessageProcessing
    
} // End of module ItsSpatem_TpFunctions