2 ==================================================================================
3 Copyright (c) 2019 AT&T Intellectual Property.
4 Copyright (c) 2019 Nokia
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
17 ==================================================================================
23 "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
27 //-----------------------------------------------------------------------------
28 // TestSubReqAndRouteNok
31 // +-------+ +---------+ +---------+
32 // | xapp | | submgr | | rtmgr |
33 // +-------+ +---------+ +---------+
45 // | [SUBS INT DELETE] |
48 //-----------------------------------------------------------------------------
50 func TestSubReqAndRouteNok(t *testing.T) {
51 xapp.Logger.Info("TestSubReqAndRouteNok")
53 waiter := rtmgrHttp.AllocNextEvent(false)
54 newSubsId := mainCtrl.get_subid(t)
55 xappConn1.handle_xapp_subs_req(t, nil, nil)
58 //Wait that subs is cleaned
59 mainCtrl.wait_subs_clean(t, newSubsId, 10)
61 xappConn1.TestMsgCnt(t)
62 xappConn2.TestMsgCnt(t)
63 e2termConn.TestMsgCnt(t)
64 mainCtrl.wait_registry_empty(t, 10)
67 //-----------------------------------------------------------------------------
68 // TestSubReqAndSubDelOk
71 // +-------+ +---------+ +---------+
72 // | xapp | | submgr | | e2term |
73 // +-------+ +---------+ +---------+
100 //-----------------------------------------------------------------------------
101 func TestSubReqAndSubDelOk(t *testing.T) {
102 xapp.Logger.Info("TestSubReqAndSubDelOk")
104 waiter := rtmgrHttp.AllocNextEvent(true)
105 cretrans := xappConn1.handle_xapp_subs_req(t, nil, nil)
108 crereq, cremsg := e2termConn.handle_e2term_subs_req(t)
109 e2termConn.handle_e2term_subs_resp(t, crereq, cremsg)
110 e2SubsId := xappConn1.handle_xapp_subs_resp(t, cretrans)
111 deltrans := xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId)
112 delreq, delmsg := e2termConn.handle_e2term_subs_del_req(t)
114 waiter = rtmgrHttp.AllocNextEvent(true)
115 e2termConn.handle_e2term_subs_del_resp(t, delreq, delmsg)
116 xappConn1.handle_xapp_subs_del_resp(t, deltrans)
119 //Wait that subs is cleaned
120 mainCtrl.wait_subs_clean(t, e2SubsId, 10)
122 xappConn1.TestMsgCnt(t)
123 xappConn2.TestMsgCnt(t)
124 e2termConn.TestMsgCnt(t)
125 mainCtrl.wait_registry_empty(t, 10)
128 //-----------------------------------------------------------------------------
129 // TestSubReqRetransmission
132 // +-------+ +---------+ +---------+
133 // | xapp | | submgr | | e2term |
134 // +-------+ +---------+ +---------+
137 // |------------->| |
140 // | |------------->|
144 // |------------->| |
147 // | |<-------------|
150 // |<-------------| |
155 //-----------------------------------------------------------------------------
156 func TestSubReqRetransmission(t *testing.T) {
157 xapp.Logger.Info("TestSubReqRetransmission")
160 cretrans := xappConn1.handle_xapp_subs_req(t, nil, nil)
161 crereq, cremsg := e2termConn.handle_e2term_subs_req(t)
163 seqBef := mainCtrl.get_msgcounter(t)
164 xappConn1.handle_xapp_subs_req(t, nil, cretrans) //Retransmitted SubReq
165 mainCtrl.wait_msgcounter_change(t, seqBef, 10)
167 e2termConn.handle_e2term_subs_resp(t, crereq, cremsg)
168 e2SubsId := xappConn1.handle_xapp_subs_resp(t, cretrans)
171 deltrans := xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId)
172 delreq, delmsg := e2termConn.handle_e2term_subs_del_req(t)
173 e2termConn.handle_e2term_subs_del_resp(t, delreq, delmsg)
174 xappConn1.handle_xapp_subs_del_resp(t, deltrans)
176 //Wait that subs is cleaned
177 mainCtrl.wait_subs_clean(t, e2SubsId, 10)
179 xappConn1.TestMsgCnt(t)
180 xappConn2.TestMsgCnt(t)
181 e2termConn.TestMsgCnt(t)
182 mainCtrl.wait_registry_empty(t, 10)
185 //-----------------------------------------------------------------------------
186 // TestSubDelReqRetransmission
189 // +-------+ +---------+ +---------+
190 // | xapp | | submgr | | e2term |
191 // +-------+ +---------+ +---------+
197 // |------------->| |
200 // | |------------->|
205 // |------------->| |
208 // | |<-------------|
211 // |<-------------| |
213 //-----------------------------------------------------------------------------
214 func TestSubDelReqRetransmission(t *testing.T) {
215 xapp.Logger.Info("TestSubDelReqRetransmission")
218 cretrans := xappConn1.handle_xapp_subs_req(t, nil, nil)
219 crereq, cremsg := e2termConn.handle_e2term_subs_req(t)
220 e2termConn.handle_e2term_subs_resp(t, crereq, cremsg)
221 e2SubsId := xappConn1.handle_xapp_subs_resp(t, cretrans)
224 deltrans := xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId)
225 delreq, delmsg := e2termConn.handle_e2term_subs_del_req(t)
227 seqBef := mainCtrl.get_msgcounter(t)
228 xappConn1.handle_xapp_subs_del_req(t, deltrans, e2SubsId) //Retransmitted SubDelReq
229 mainCtrl.wait_msgcounter_change(t, seqBef, 10)
231 e2termConn.handle_e2term_subs_del_resp(t, delreq, delmsg)
232 xappConn1.handle_xapp_subs_del_resp(t, deltrans)
234 //Wait that subs is cleaned
235 mainCtrl.wait_subs_clean(t, e2SubsId, 10)
237 xappConn1.TestMsgCnt(t)
238 xappConn2.TestMsgCnt(t)
239 e2termConn.TestMsgCnt(t)
240 mainCtrl.wait_registry_empty(t, 10)
243 //-----------------------------------------------------------------------------
244 // TestSubDelReqCollision
247 // +-------+ +---------+ +---------+
248 // | xapp | | submgr | | e2term |
249 // +-------+ +---------+ +---------+
255 // |------------->| |
258 // | |------------->|
263 // |------------->| |
265 // | | SubDelResp 1 |
266 // | |<-------------|
268 // | SubDelResp 1 | |
269 // |<-------------| |
271 // | SubDelResp 2 | |
272 // |<-------------| |
274 //-----------------------------------------------------------------------------
276 func TestSubDelReqCollision(t *testing.T) {
277 xapp.Logger.Info("TestSubDelReqCollision")
280 cretrans := xappConn1.handle_xapp_subs_req(t, nil, nil)
281 crereq, cremsg := e2termConn.handle_e2term_subs_req(t)
282 e2termConn.handle_e2term_subs_resp(t, crereq, cremsg)
283 e2SubsId := xappConn1.handle_xapp_subs_resp(t, cretrans)
286 xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId)
287 delreq1, delmsg1 := e2termConn.handle_e2term_subs_del_req(t)
289 // Subs Delete colliding
290 seqBef := mainCtrl.get_msgcounter(t)
291 deltranscol2 := xappConn1.newXappTransaction(nil, "RAN_NAME_1")
292 xappConn1.handle_xapp_subs_del_req(t, deltranscol2, e2SubsId) //Colliding SubDelReq
293 mainCtrl.wait_msgcounter_change(t, seqBef, 10)
295 // Del resp for first and second
296 e2termConn.handle_e2term_subs_del_resp(t, delreq1, delmsg1)
298 // don't care in which order responses are received
299 xappConn1.handle_xapp_subs_del_resp(t, nil)
300 xappConn1.handle_xapp_subs_del_resp(t, nil)
302 //Wait that subs is cleaned
303 mainCtrl.wait_subs_clean(t, e2SubsId, 10)
305 xappConn1.TestMsgCnt(t)
306 xappConn2.TestMsgCnt(t)
307 e2termConn.TestMsgCnt(t)
308 mainCtrl.wait_registry_empty(t, 10)
311 //-----------------------------------------------------------------------------
312 // TestSubReqAndSubDelOkTwoParallel
315 // +-------+ +---------+ +---------+
316 // | xapp | | submgr | | e2term |
317 // +-------+ +---------+ +---------+
322 // |------------->| |
325 // | |------------->|
328 // |------------->| |
331 // | |------------->|
334 // | |<-------------|
336 // | |<-------------|
339 // |<-------------| |
341 // |<-------------| |
343 // | [SUBS 1 DELETE] |
345 // | [SUBS 2 DELETE] |
348 //-----------------------------------------------------------------------------
349 func TestSubReqAndSubDelOkTwoParallel(t *testing.T) {
350 xapp.Logger.Info("TestSubReqAndSubDelOkTwoParallel")
353 rparams1 := &test_subs_req_params{}
355 rparams1.req.EventTriggerDefinition.ProcedureCode = 5
356 cretrans1 := xappConn1.handle_xapp_subs_req(t, rparams1, nil)
357 crereq1, cremsg1 := e2termConn.handle_e2term_subs_req(t)
360 rparams2 := &test_subs_req_params{}
362 rparams2.req.EventTriggerDefinition.ProcedureCode = 28
363 cretrans2 := xappConn2.handle_xapp_subs_req(t, rparams2, nil)
364 crereq2, cremsg2 := e2termConn.handle_e2term_subs_req(t)
367 e2termConn.handle_e2term_subs_resp(t, crereq1, cremsg1)
368 e2SubsId1 := xappConn1.handle_xapp_subs_resp(t, cretrans1)
371 e2termConn.handle_e2term_subs_resp(t, crereq2, cremsg2)
372 e2SubsId2 := xappConn2.handle_xapp_subs_resp(t, cretrans2)
375 deltrans1 := xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId1)
376 delreq1, delmsg1 := e2termConn.handle_e2term_subs_del_req(t)
377 e2termConn.handle_e2term_subs_del_resp(t, delreq1, delmsg1)
378 xappConn1.handle_xapp_subs_del_resp(t, deltrans1)
379 //Wait that subs is cleaned
380 mainCtrl.wait_subs_clean(t, e2SubsId1, 10)
383 deltrans2 := xappConn2.handle_xapp_subs_del_req(t, nil, e2SubsId2)
384 delreq2, delmsg2 := e2termConn.handle_e2term_subs_del_req(t)
385 e2termConn.handle_e2term_subs_del_resp(t, delreq2, delmsg2)
386 xappConn2.handle_xapp_subs_del_resp(t, deltrans2)
387 //Wait that subs is cleaned
388 mainCtrl.wait_subs_clean(t, e2SubsId2, 10)
390 xappConn1.TestMsgCnt(t)
391 xappConn2.TestMsgCnt(t)
392 e2termConn.TestMsgCnt(t)
393 mainCtrl.wait_registry_empty(t, 10)
396 //-----------------------------------------------------------------------------
397 // TestSameSubsDiffRan
398 // Same subscription to different RANs
401 // +-------+ +---------+ +---------+
402 // | xapp | | submgr | | e2term |
403 // +-------+ +---------+ +---------+
408 // |------------->| |
411 // | |------------->|
414 // | |<-------------|
417 // |<-------------| |
420 // |------------->| |
423 // | |------------->|
426 // | |<-------------|
429 // |<-------------| |
431 // | [SUBS r1 DELETE] |
433 // | [SUBS r2 DELETE] |
436 //-----------------------------------------------------------------------------
437 func TestSameSubsDiffRan(t *testing.T) {
438 xapp.Logger.Info("TestSameSubsDiffRan")
441 cretrans1 := xappConn1.newXappTransaction(nil, "RAN_NAME_1")
442 xappConn1.handle_xapp_subs_req(t, nil, cretrans1)
443 crereq1, cremsg1 := e2termConn.handle_e2term_subs_req(t)
444 e2termConn.handle_e2term_subs_resp(t, crereq1, cremsg1)
445 e2SubsId1 := xappConn1.handle_xapp_subs_resp(t, cretrans1)
448 cretrans2 := xappConn1.newXappTransaction(nil, "RAN_NAME_2")
449 xappConn1.handle_xapp_subs_req(t, nil, cretrans2)
450 crereq2, cremsg2 := e2termConn.handle_e2term_subs_req(t)
451 e2termConn.handle_e2term_subs_resp(t, crereq2, cremsg2)
452 e2SubsId2 := xappConn1.handle_xapp_subs_resp(t, cretrans2)
455 deltrans1 := xappConn1.newXappTransaction(nil, "RAN_NAME_1")
456 xappConn1.handle_xapp_subs_del_req(t, deltrans1, e2SubsId1)
457 delreq1, delmsg1 := e2termConn.handle_e2term_subs_del_req(t)
458 e2termConn.handle_e2term_subs_del_resp(t, delreq1, delmsg1)
459 xappConn1.handle_xapp_subs_del_resp(t, deltrans1)
460 //Wait that subs is cleaned
461 mainCtrl.wait_subs_clean(t, e2SubsId1, 10)
464 deltrans2 := xappConn1.newXappTransaction(nil, "RAN_NAME_2")
465 xappConn1.handle_xapp_subs_del_req(t, deltrans2, e2SubsId2)
466 delreq2, delmsg2 := e2termConn.handle_e2term_subs_del_req(t)
467 e2termConn.handle_e2term_subs_del_resp(t, delreq2, delmsg2)
468 xappConn1.handle_xapp_subs_del_resp(t, deltrans2)
469 //Wait that subs is cleaned
470 mainCtrl.wait_subs_clean(t, e2SubsId2, 10)
472 xappConn1.TestMsgCnt(t)
473 xappConn2.TestMsgCnt(t)
474 e2termConn.TestMsgCnt(t)
475 mainCtrl.wait_registry_empty(t, 10)
478 //-----------------------------------------------------------------------------
479 // TestSubReqRetryInSubmgr
482 // +-------+ +---------+ +---------+
483 // | xapp | | submgr | | e2term |
484 // +-------+ +---------+ +---------+
487 // |------------->| |
490 // | |------------->|
494 // | |------------->|
497 // | |<-------------|
500 // |<-------------| |
505 //-----------------------------------------------------------------------------
507 func TestSubReqRetryInSubmgr(t *testing.T) {
509 xapp.Logger.Info("TestSubReqRetryInSubmgr start")
511 // Xapp: Send SubsReq
512 cretrans := xappConn1.handle_xapp_subs_req(t, nil, nil)
514 // E2t: Receive 1st SubsReq
515 e2termConn.handle_e2term_subs_req(t)
517 // E2t: Receive 2nd SubsReq and send SubsResp
518 crereq, cremsg := e2termConn.handle_e2term_subs_req(t)
519 e2termConn.handle_e2term_subs_resp(t, crereq, cremsg)
521 // Xapp: Receive SubsResp
522 e2SubsId := xappConn1.handle_xapp_subs_resp(t, cretrans)
524 deltrans := xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId)
525 delreq, delmsg := e2termConn.handle_e2term_subs_del_req(t)
526 e2termConn.handle_e2term_subs_del_resp(t, delreq, delmsg)
527 xappConn1.handle_xapp_subs_del_resp(t, deltrans)
529 // Wait that subs is cleaned
530 mainCtrl.wait_subs_clean(t, e2SubsId, 10)
532 xappConn1.TestMsgCnt(t)
533 xappConn2.TestMsgCnt(t)
534 e2termConn.TestMsgCnt(t)
535 mainCtrl.wait_registry_empty(t, 10)
538 //-----------------------------------------------------------------------------
539 // TestSubReqTwoRetriesNoRespSubDelRespInSubmgr
542 // +-------+ +---------+ +---------+
543 // | xapp | | submgr | | e2term |
544 // +-------+ +---------+ +---------+
547 // |------------->| |
550 // | |------------->|
554 // | |------------->|
557 // | |------------->|
561 // | |------------->|
565 // | |<-------------|
568 //-----------------------------------------------------------------------------
570 func TestSubReqRetryNoRespSubDelRespInSubmgr(t *testing.T) {
572 xapp.Logger.Info("TestSubReqTwoRetriesNoRespSubDelRespInSubmgr start")
574 // Xapp: Send SubsReq
575 xappConn1.handle_xapp_subs_req(t, nil, nil)
577 // E2t: Receive 1st SubsReq
578 e2termConn.handle_e2term_subs_req(t)
580 // E2t: Receive 2nd SubsReq
581 e2termConn.handle_e2term_subs_req(t)
583 // E2t: Send receive SubsDelReq and send SubsResp
584 delreq, delmsg := e2termConn.handle_e2term_subs_del_req(t)
585 e2termConn.handle_e2term_subs_del_resp(t, delreq, delmsg)
587 // Wait that subs is cleaned
588 mainCtrl.wait_subs_clean(t, delreq.RequestId.Seq, 10)
590 xappConn1.TestMsgCnt(t)
591 xappConn2.TestMsgCnt(t)
592 e2termConn.TestMsgCnt(t)
593 mainCtrl.wait_registry_empty(t, 10)
596 //-----------------------------------------------------------------------------
597 // TestSubReqTwoRetriesNoRespAtAllInSubmgr
600 // +-------+ +---------+ +---------+
601 // | xapp | | submgr | | e2term |
602 // +-------+ +---------+ +---------+
605 // |------------->| |
608 // | |------------->|
612 // | |------------->|
615 // | |------------->|
619 // | |------------->|
623 //-----------------------------------------------------------------------------
625 func TestSubReqTwoRetriesNoRespAtAllInSubmgr(t *testing.T) {
627 xapp.Logger.Info("TestSubReqTwoRetriesNoRespAtAllInSubmgr start")
629 // Xapp: Send SubsReq
630 xappConn1.handle_xapp_subs_req(t, nil, nil)
632 // E2t: Receive 1st SubsReq
633 e2termConn.handle_e2term_subs_req(t)
635 // E2t: Receive 2nd SubsReq
636 e2termConn.handle_e2term_subs_req(t)
638 // E2t: Receive 1st SubsDelReq
639 e2termConn.handle_e2term_subs_del_req(t)
641 // E2t: Receive 2nd SubsDelReq
642 delreq, _ := e2termConn.handle_e2term_subs_del_req(t)
644 // Wait that subs is cleaned
645 mainCtrl.wait_subs_clean(t, delreq.RequestId.Seq, 15)
647 xappConn1.TestMsgCnt(t)
648 xappConn2.TestMsgCnt(t)
649 e2termConn.TestMsgCnt(t)
650 mainCtrl.wait_registry_empty(t, 10)
653 //-----------------------------------------------------------------------------
654 // TestSubReqSubFailRespInSubmgr
657 // +-------+ +---------+ +---------+
658 // | xapp | | submgr | | e2term |
659 // +-------+ +---------+ +---------+
662 // |------------->| |
665 // | |------------->|
668 // | |<-------------|
671 // |<-------------| |
674 //-----------------------------------------------------------------------------
676 func TestSubReqSubFailRespInSubmgr(t *testing.T) {
678 xapp.Logger.Info("TestSubReqSubFailRespInSubmgr start")
680 // Xapp: Send SubsReq
681 cretrans := xappConn1.handle_xapp_subs_req(t, nil, nil)
683 // E2t: Receive SubsReq and send SubsFail
684 crereq, cremsg := e2termConn.handle_e2term_subs_req(t)
685 fparams := &test_subs_fail_params{}
687 e2termConn.handle_e2term_subs_fail(t, fparams, cremsg)
689 // Xapp: Receive SubsFail
690 e2SubsId := xappConn1.handle_xapp_subs_fail(t, cretrans)
692 // Wait that subs is cleaned
693 mainCtrl.wait_subs_clean(t, e2SubsId, 10)
695 xappConn1.TestMsgCnt(t)
696 xappConn2.TestMsgCnt(t)
697 e2termConn.TestMsgCnt(t)
698 mainCtrl.wait_registry_empty(t, 10)
701 //-----------------------------------------------------------------------------
702 // TestSubDelReqRetryInSubmgr
705 // +-------+ +---------+ +---------+
706 // | xapp | | submgr | | e2term |
707 // +-------+ +---------+ +---------+
713 // |------------->| |
716 // | |------------->|
719 // | |------------->|
722 // | |<-------------|
725 // |<-------------| |
727 //-----------------------------------------------------------------------------
729 func TestSubDelReqRetryInSubmgr(t *testing.T) {
731 xapp.Logger.Info("TestSubDelReqRetryInSubmgr start")
734 cretrans := xappConn1.handle_xapp_subs_req(t, nil, nil)
735 crereq, cremsg := e2termConn.handle_e2term_subs_req(t)
736 e2termConn.handle_e2term_subs_resp(t, crereq, cremsg)
737 e2SubsId := xappConn1.handle_xapp_subs_resp(t, cretrans)
740 // Xapp: Send SubsDelReq
741 deltrans := xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId)
743 // E2t: Receive 1st SubsDelReq
744 e2termConn.handle_e2term_subs_del_req(t)
746 // E2t: Receive 2nd SubsDelReq and send SubsDelResp
747 delreq, delmsg := e2termConn.handle_e2term_subs_del_req(t)
748 e2termConn.handle_e2term_subs_del_resp(t, delreq, delmsg)
750 // Xapp: Receive SubsDelResp
751 xappConn1.handle_xapp_subs_del_resp(t, deltrans)
753 // Wait that subs is cleaned
754 mainCtrl.wait_subs_clean(t, e2SubsId, 10)
756 xappConn1.TestMsgCnt(t)
757 xappConn2.TestMsgCnt(t)
758 e2termConn.TestMsgCnt(t)
759 mainCtrl.wait_registry_empty(t, 10)
762 //-----------------------------------------------------------------------------
763 // TestSubDelReqTwoRetriesNoRespInSubmgr
766 // +-------+ +---------+ +---------+
767 // | xapp | | submgr | | e2term |
768 // +-------+ +---------+ +---------+
774 // |------------->| |
777 // | |------------->|
780 // | |------------->|
784 // |<-------------| |
786 //-----------------------------------------------------------------------------
788 func TestSubDelReqTwoRetriesNoRespInSubmgr(t *testing.T) {
790 xapp.Logger.Info("TestSubDelReTwoRetriesNoRespInSubmgr start")
793 cretrans := xappConn1.handle_xapp_subs_req(t, nil, nil)
794 crereq, cremsg := e2termConn.handle_e2term_subs_req(t)
795 e2termConn.handle_e2term_subs_resp(t, crereq, cremsg)
796 e2SubsId := xappConn1.handle_xapp_subs_resp(t, cretrans)
799 // Xapp: Send SubsDelReq
800 deltrans := xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId)
802 // E2t: Receive 1st SubsDelReq
803 e2termConn.handle_e2term_subs_del_req(t)
805 // E2t: Receive 2nd SubsDelReq
806 e2termConn.handle_e2term_subs_del_req(t)
808 // Xapp: Receive SubsDelResp
809 xappConn1.handle_xapp_subs_del_resp(t, deltrans)
811 // Wait that subs is cleaned
812 mainCtrl.wait_subs_clean(t, e2SubsId, 10)
814 xappConn1.TestMsgCnt(t)
815 xappConn2.TestMsgCnt(t)
816 e2termConn.TestMsgCnt(t)
817 mainCtrl.wait_registry_empty(t, 10)
820 //-----------------------------------------------------------------------------
821 // TestSubDelReqSubDelFailRespInSubmgr
824 // +-------+ +---------+ +---------+
825 // | xapp | | submgr | | e2term |
826 // +-------+ +---------+ +---------+
832 // |------------->| |
835 // | |------------->|
838 // | |<-------------|
841 // |<-------------| |
844 //-----------------------------------------------------------------------------
846 func TestSubDelReqSubDelFailRespInSubmgr(t *testing.T) {
848 xapp.Logger.Info("TestSubReqSubDelFailRespInSubmgr start")
851 cretrans := xappConn1.handle_xapp_subs_req(t, nil, nil)
852 crereq, cremsg := e2termConn.handle_e2term_subs_req(t)
853 e2termConn.handle_e2term_subs_resp(t, crereq, cremsg)
854 e2SubsId := xappConn1.handle_xapp_subs_resp(t, cretrans)
856 // Xapp: Send SubsDelReq
857 deltrans := xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId)
859 // E2t: Send receive SubsDelReq and send SubsDelFail
860 delreq, delmsg := e2termConn.handle_e2term_subs_del_req(t)
861 e2termConn.handle_e2term_subs_del_fail(t, delreq, delmsg)
863 // Xapp: Receive SubsDelResp
864 xappConn1.handle_xapp_subs_del_resp(t, deltrans)
866 // Wait that subs is cleaned
867 mainCtrl.wait_subs_clean(t, e2SubsId, 10)
869 xappConn1.TestMsgCnt(t)
870 xappConn2.TestMsgCnt(t)
871 e2termConn.TestMsgCnt(t)
872 mainCtrl.wait_registry_empty(t, 10)
875 //-----------------------------------------------------------------------------
876 // TestSubReqAndSubDelOkSameAction
879 // +-------+ +---------+ +---------+
880 // | xapp | | submgr | | e2term |
881 // +-------+ +---------+ +---------+
886 // |------------->| |
889 // | |------------->|
891 // | |<-------------|
893 // |<-------------| |
896 // |------------->| |
899 // |<-------------| |
902 // |------------->| |
904 // | SubDelResp 1 | |
905 // |<-------------| |
908 // |------------->| |
911 // | |------------->|
914 // | |------------->|
916 // | SubDelResp 2 | |
917 // |<-------------| |
919 //-----------------------------------------------------------------------------
920 func TestSubReqAndSubDelOkSameAction(t *testing.T) {
921 xapp.Logger.Info("TestSubReqAndSubDelOkSameAction")
924 rparams1 := &test_subs_req_params{}
926 cretrans1 := xappConn1.handle_xapp_subs_req(t, rparams1, nil)
927 crereq1, cremsg1 := e2termConn.handle_e2term_subs_req(t)
928 e2termConn.handle_e2term_subs_resp(t, crereq1, cremsg1)
929 e2SubsId1 := xappConn1.handle_xapp_subs_resp(t, cretrans1)
932 rparams2 := &test_subs_req_params{}
934 cretrans2 := xappConn2.handle_xapp_subs_req(t, rparams2, nil)
935 //crereq2, cremsg2 := e2termConn.handle_e2term_subs_req(t)
936 //e2termConn.handle_e2term_subs_resp(t, crereq2, cremsg2)
937 e2SubsId2 := xappConn2.handle_xapp_subs_resp(t, cretrans2)
940 deltrans1 := xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId1)
941 //e2termConn.handle_e2term_subs_del_req(t)
942 //e2termConn.handle_e2term_subs_del_resp(t, delreq1, delmsg1)
943 xappConn1.handle_xapp_subs_del_resp(t, deltrans1)
944 //Wait that subs is cleaned
945 //mainCtrl.wait_subs_clean(t, e2SubsId1, 10)
948 deltrans2 := xappConn2.handle_xapp_subs_del_req(t, nil, e2SubsId2)
949 delreq2, delmsg2 := e2termConn.handle_e2term_subs_del_req(t)
950 e2termConn.handle_e2term_subs_del_resp(t, delreq2, delmsg2)
951 xappConn2.handle_xapp_subs_del_resp(t, deltrans2)
952 //Wait that subs is cleaned
953 mainCtrl.wait_subs_clean(t, e2SubsId2, 10)
955 xappConn1.TestMsgCnt(t)
956 xappConn2.TestMsgCnt(t)
957 e2termConn.TestMsgCnt(t)
958 mainCtrl.wait_registry_empty(t, 10)
961 //-----------------------------------------------------------------------------
962 // TestSubReqAndSubDelOkSameActionParallel
965 // +-------+ +---------+ +---------+
966 // | xapp | | submgr | | e2term |
967 // +-------+ +---------+ +---------+
972 // |------------->| |
975 // | |------------->|
977 // |------------->| |
979 // | |<-------------|
981 // |<-------------| |
984 // |<-------------| |
987 // |------------->| |
989 // | SubDelResp 1 | |
990 // |<-------------| |
993 // |------------->| |
996 // | |------------->|
999 // | |------------->|
1001 // | SubDelResp 2 | |
1002 // |<-------------| |
1004 //-----------------------------------------------------------------------------
1005 func TestSubReqAndSubDelOkSameActionParallel(t *testing.T) {
1006 xapp.Logger.Info("TestSubReqAndSubDelOkSameActionParallel")
1009 rparams1 := &test_subs_req_params{}
1011 cretrans1 := xappConn1.handle_xapp_subs_req(t, rparams1, nil)
1012 crereq1, cremsg1 := e2termConn.handle_e2term_subs_req(t)
1015 rparams2 := &test_subs_req_params{}
1017 cretrans2 := xappConn2.handle_xapp_subs_req(t, rparams2, nil)
1020 e2termConn.handle_e2term_subs_resp(t, crereq1, cremsg1)
1021 e2SubsId1 := xappConn1.handle_xapp_subs_resp(t, cretrans1)
1024 e2SubsId2 := xappConn2.handle_xapp_subs_resp(t, cretrans2)
1027 deltrans1 := xappConn1.handle_xapp_subs_del_req(t, nil, e2SubsId1)
1028 xappConn1.handle_xapp_subs_del_resp(t, deltrans1)
1031 deltrans2 := xappConn2.handle_xapp_subs_del_req(t, nil, e2SubsId2)
1032 delreq2, delmsg2 := e2termConn.handle_e2term_subs_del_req(t)
1033 e2termConn.handle_e2term_subs_del_resp(t, delreq2, delmsg2)
1034 xappConn2.handle_xapp_subs_del_resp(t, deltrans2)
1036 //Wait that subs is cleaned
1037 mainCtrl.wait_subs_clean(t, e2SubsId2, 10)
1039 xappConn1.TestMsgCnt(t)
1040 xappConn2.TestMsgCnt(t)
1041 e2termConn.TestMsgCnt(t)
1042 mainCtrl.wait_registry_empty(t, 10)
1045 //-----------------------------------------------------------------------------
1046 // TestSubReqAndSubDelNokSameActionParallel
1049 // +-------+ +---------+ +---------+
1050 // | xapp | | submgr | | e2term |
1051 // +-------+ +---------+ +---------+
1056 // |------------->| |
1059 // | |------------->|
1061 // |------------->| |
1063 // | |<-------------|
1065 // |<-------------| |
1068 // |<-------------| |
1070 //-----------------------------------------------------------------------------
1071 func TestSubReqAndSubDelNokSameActionParallel(t *testing.T) {
1072 xapp.Logger.Info("TestSubReqAndSubDelNokSameActionParallel")
1075 rparams1 := &test_subs_req_params{}
1077 cretrans1 := xappConn1.handle_xapp_subs_req(t, rparams1, nil)
1078 crereq1, cremsg1 := e2termConn.handle_e2term_subs_req(t)
1081 rparams2 := &test_subs_req_params{}
1083 seqBef2 := mainCtrl.get_msgcounter(t)
1084 cretrans2 := xappConn2.handle_xapp_subs_req(t, rparams2, nil)
1085 mainCtrl.wait_msgcounter_change(t, seqBef2, 10)
1088 fparams := &test_subs_fail_params{}
1089 fparams.Set(crereq1)
1090 e2termConn.handle_e2term_subs_fail(t, fparams, cremsg1)
1093 e2SubsId1 := xappConn1.handle_xapp_subs_fail(t, cretrans1)
1095 xappConn2.handle_xapp_subs_fail(t, cretrans2)
1097 //Wait that subs is cleaned
1098 mainCtrl.wait_subs_clean(t, e2SubsId1, 15)
1100 xappConn1.TestMsgCnt(t)
1101 xappConn2.TestMsgCnt(t)
1102 e2termConn.TestMsgCnt(t)
1103 mainCtrl.wait_registry_empty(t, 10)
1106 //-----------------------------------------------------------------------------
1107 // TestSubReqAndSubDelNoAnswerSameActionParallel
1110 // +-------+ +---------+ +---------+
1111 // | xapp | | submgr | | e2term |
1112 // +-------+ +---------+ +---------+
1117 // |------------->| |
1120 // | |------------->|
1122 // |------------->| |
1125 // | |------------->|
1129 // | |------------->|
1132 // | |<-------------|
1134 //-----------------------------------------------------------------------------
1135 func TestSubReqAndSubDelNoAnswerSameActionParallel(t *testing.T) {
1136 xapp.Logger.Info("TestSubReqAndSubDelNoAnswerSameActionParallel")
1139 rparams1 := &test_subs_req_params{}
1141 xappConn1.handle_xapp_subs_req(t, rparams1, nil)
1143 e2termConn.handle_e2term_subs_req(t)
1146 rparams2 := &test_subs_req_params{}
1148 seqBef2 := mainCtrl.get_msgcounter(t)
1149 xappConn2.handle_xapp_subs_req(t, rparams2, nil)
1150 mainCtrl.wait_msgcounter_change(t, seqBef2, 10)
1152 //Req1 (retransmitted)
1153 e2termConn.handle_e2term_subs_req(t)
1155 delreq1, delmsg1 := e2termConn.handle_e2term_subs_del_req(t)
1156 e2termConn.handle_e2term_subs_del_resp(t, delreq1, delmsg1)
1158 //Wait that subs is cleaned
1159 mainCtrl.wait_subs_clean(t, delreq1.RequestId.Seq, 10)
1161 xappConn1.TestMsgCnt(t)
1162 xappConn2.TestMsgCnt(t)
1163 e2termConn.TestMsgCnt(t)
1164 mainCtrl.wait_registry_empty(t, 15)