X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=pkg%2Fcontrol%2Fut_messaging_test.go;h=36e4f29e668289cc76ce17891167bdbb05d7ea71;hb=6111f59198091a8a5f93e7136b84f51277765c32;hp=a9339c2a0302b8561c53fce5a3657cb66b2cc357;hpb=f28853b537355b9ce04d7f3617bc80b3f0c34a1a;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/ut_messaging_test.go b/pkg/control/ut_messaging_test.go index a9339c2..36e4f29 100644 --- a/pkg/control/ut_messaging_test.go +++ b/pkg/control/ut_messaging_test.go @@ -25,6 +25,7 @@ import ( "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp" "github.com/stretchr/testify/assert" "testing" + "time" ) //----------------------------------------------------------------------------- @@ -54,7 +55,7 @@ func TestSubReqAndRouteNok(t *testing.T) { CaseBegin("TestSubReqAndRouteNok") waiter := rtmgrHttp.AllocNextEvent(false) - newSubsId := mainCtrl.get_subid(t) + newSubsId := mainCtrl.get_registry_next_subid(t) xappConn1.SendSubsReq(t, nil, nil) waiter.WaitResult(t) @@ -169,6 +170,10 @@ func TestSubReqRetransmission(t *testing.T) { xappConn1.SendSubsReq(t, nil, cretrans) //Retransmitted SubReq mainCtrl.wait_msgcounter_change(t, seqBef, 10) + // hack as there is no real way to see has message be handled. + // Previuos counter check just tells that is has been received by submgr + // --> artificial delay + <-time.After(1 * time.Second) e2termConn1.SendSubsResp(t, crereq, cremsg) e2SubsId := xappConn1.RecvSubsResp(t, cretrans) @@ -233,6 +238,11 @@ func TestSubDelReqRetransmission(t *testing.T) { xappConn1.SendSubsDelReq(t, deltrans, e2SubsId) //Retransmitted SubDelReq mainCtrl.wait_msgcounter_change(t, seqBef, 10) + // hack as there is no real way to see has message be handled. + // Previuos counter check just tells that is has been received by submgr + // --> artificial delay + <-time.After(1 * time.Second) + e2termConn1.SendSubsDelResp(t, delreq, delmsg) xappConn1.RecvSubsDelResp(t, deltrans) @@ -297,6 +307,11 @@ func TestSubDelReqCollision(t *testing.T) { xappConn1.SendSubsDelReq(t, deltranscol2, e2SubsId) //Colliding SubDelReq mainCtrl.wait_msgcounter_change(t, seqBef, 10) + // hack as there is no real way to see has message be handled. + // Previuos counter check just tells that is has been received by submgr + // --> artificial delay + <-time.After(1 * time.Second) + // Del resp for first and second e2termConn1.SendSubsDelResp(t, delreq1, delmsg1) @@ -357,14 +372,17 @@ func TestSubReqAndSubDelOkTwoParallel(t *testing.T) { //Req1 rparams1 := &teststube2ap.E2StubSubsReqParams{} rparams1.Init() - rparams1.Req.EventTriggerDefinition.ProcedureCode = 5 cretrans1 := xappConn1.SendSubsReq(t, rparams1, nil) crereq1, cremsg1 := e2termConn1.RecvSubsReq(t) //Req2 rparams2 := &teststube2ap.E2StubSubsReqParams{} rparams2.Init() - rparams2.Req.EventTriggerDefinition.ProcedureCode = 28 + + rparams2.Req.EventTriggerDefinition.Data.Length = 1 + rparams2.Req.EventTriggerDefinition.Data.Data = make([]uint8, rparams2.Req.EventTriggerDefinition.Data.Length) + rparams2.Req.EventTriggerDefinition.Data.Data[0] = 2 + cretrans2 := xappConn2.SendSubsReq(t, rparams2, nil) crereq2, cremsg2 := e2termConn1.RecvSubsReq(t) @@ -590,7 +608,7 @@ func TestSubReqRetryNoRespSubDelRespInSubmgr(t *testing.T) { e2termConn1.SendSubsDelResp(t, delreq, delmsg) // Wait that subs is cleaned - mainCtrl.wait_subs_clean(t, delreq.RequestId.Seq, 10) + mainCtrl.wait_subs_clean(t, delreq.RequestId.InstanceId, 10) xappConn1.TestMsgChanEmpty(t) xappConn2.TestMsgChanEmpty(t) @@ -647,7 +665,7 @@ func TestSubReqTwoRetriesNoRespAtAllInSubmgr(t *testing.T) { delreq, _ := e2termConn1.RecvSubsDelReq(t) // Wait that subs is cleaned - mainCtrl.wait_subs_clean(t, delreq.RequestId.Seq, 15) + mainCtrl.wait_subs_clean(t, delreq.RequestId.InstanceId, 15) xappConn1.TestMsgChanEmpty(t) xappConn2.TestMsgChanEmpty(t) @@ -1266,9 +1284,9 @@ func TestSubReqAndSubDelNokSameActionParallel(t *testing.T) { //Req2 rparams2 := &teststube2ap.E2StubSubsReqParams{} rparams2.Init() - seqBef2 := mainCtrl.get_msgcounter(t) + subepcnt2 := mainCtrl.get_subs_entrypoint_cnt(t, crereq1.RequestId.InstanceId) cretrans2 := xappConn2.SendSubsReq(t, rparams2, nil) - mainCtrl.wait_msgcounter_change(t, seqBef2, 10) + mainCtrl.wait_subs_entrypoint_cnt_change(t, crereq1.RequestId.InstanceId, subepcnt2, 10) // E2t: send SubsFail (first) fparams1 := &teststube2ap.E2StubSubsFailParams{} @@ -1330,14 +1348,14 @@ func TestSubReqAndSubDelNoAnswerSameActionParallel(t *testing.T) { rparams1.Init() xappConn1.SendSubsReq(t, rparams1, nil) - e2termConn1.RecvSubsReq(t) + crereq1, _ := e2termConn1.RecvSubsReq(t) //Req2 rparams2 := &teststube2ap.E2StubSubsReqParams{} rparams2.Init() - seqBef2 := mainCtrl.get_msgcounter(t) + subepcnt2 := mainCtrl.get_subs_entrypoint_cnt(t, crereq1.RequestId.InstanceId) xappConn2.SendSubsReq(t, rparams2, nil) - mainCtrl.wait_msgcounter_change(t, seqBef2, 10) + mainCtrl.wait_subs_entrypoint_cnt_change(t, crereq1.RequestId.InstanceId, subepcnt2, 10) //Req1 (retransmitted) e2termConn1.RecvSubsReq(t) @@ -1346,7 +1364,7 @@ func TestSubReqAndSubDelNoAnswerSameActionParallel(t *testing.T) { e2termConn1.SendSubsDelResp(t, delreq1, delmsg1) //Wait that subs is cleaned - mainCtrl.wait_subs_clean(t, delreq1.RequestId.Seq, 10) + mainCtrl.wait_subs_clean(t, delreq1.RequestId.InstanceId, 10) xappConn1.TestMsgChanEmpty(t) xappConn2.TestMsgChanEmpty(t) @@ -1474,7 +1492,7 @@ func TestSubReqPolicyChangeAndSubDelOk(t *testing.T) { e2SubsId := xappConn1.RecvSubsResp(t, cretrans) //Policy change - rparams1.Req.RequestId.Seq = e2SubsId + rparams1.Req.RequestId.InstanceId = e2SubsId rparams1.Req.ActionSetups[0].SubsequentAction.TimetoWait = e2ap.E2AP_TimeToWaitW200ms xappConn1.SendSubsReq(t, rparams1, cretrans) @@ -1575,3 +1593,63 @@ func TestSubReqAndSubDelOkTwoE2termParallel(t *testing.T) { e2termConn2.TestMsgChanEmpty(t) mainCtrl.wait_registry_empty(t, 10) } + +//----------------------------------------------------------------------------- +// TestSubReqInsertAndSubDelOk +// +// stub stub +// +-------+ +---------+ +---------+ +// | xapp | | submgr | | e2term | +// +-------+ +---------+ +---------+ +// | | | +// | SubReq | | +// |------------->| | +// | | | +// | | SubReq | +// | |------------->| +// | | | +// | | SubResp | +// | |<-------------| +// | | | +// | SubResp | | +// |<-------------| | +// | | | +// | | | +// | SubDelReq | | +// |------------->| | +// | | | +// | | SubDelReq | +// | |------------->| +// | | | +// | | SubDelResp | +// | |<-------------| +// | | | +// | SubDelResp | | +// |<-------------| | +// +//----------------------------------------------------------------------------- +func TestSubReqInsertAndSubDelOk(t *testing.T) { + CaseBegin("TestInsertSubReqAndSubDelOk") + + rparams1 := &teststube2ap.E2StubSubsReqParams{} + rparams1.Init() + rparams1.Req.ActionSetups[0].ActionType = e2ap.E2AP_ActionTypeInsert + cretrans := xappConn1.SendSubsReq(t, rparams1, nil) + + crereq, cremsg := e2termConn1.RecvSubsReq(t) + e2termConn1.SendSubsResp(t, crereq, cremsg) + e2SubsId := xappConn1.RecvSubsResp(t, cretrans) + deltrans := xappConn1.SendSubsDelReq(t, nil, e2SubsId) + delreq, delmsg := e2termConn1.RecvSubsDelReq(t) + + e2termConn1.SendSubsDelResp(t, delreq, delmsg) + xappConn1.RecvSubsDelResp(t, deltrans) + + //Wait that subs is cleaned + mainCtrl.wait_subs_clean(t, e2SubsId, 10) + + xappConn1.TestMsgChanEmpty(t) + xappConn2.TestMsgChanEmpty(t) + e2termConn1.TestMsgChanEmpty(t) + mainCtrl.wait_registry_empty(t, 10) +}