From 39d94ea1dd0e04ee6da8742d133393ce6ed3200c Mon Sep 17 00:00:00 2001 From: Konstantinos Archangelof Date: Fri, 21 May 2021 09:36:45 +0000 Subject: [PATCH] Added Test Cases to improve subscription.go coverity coverage Change-Id: Ic81889c411dcc770534342097f40e9fd44b6c010 Signed-off-by: Konstantinos Archangelof --- pkg/control/subscription.go | 5 +- pkg/control/ut_messaging_test.go | 367 +++++++++++++++++++++++++++++++++++++++ pkg/teststube2ap/stubE2.go | 52 ++++++ 3 files changed, 420 insertions(+), 4 deletions(-) diff --git a/pkg/control/subscription.go b/pkg/control/subscription.go index ec6f67a..6ea2c1f 100644 --- a/pkg/control/subscription.go +++ b/pkg/control/subscription.go @@ -79,10 +79,7 @@ func (s *Subscription) GetReqId() *RequestId { func (s *Subscription) GetMeid() *xapp.RMRMeid { s.mutex.Lock() defer s.mutex.Unlock() - if s.Meid != nil { - return s.Meid - } - return nil + return s.Meid } func (s *Subscription) GetTransaction() TransactionIf { diff --git a/pkg/control/ut_messaging_test.go b/pkg/control/ut_messaging_test.go index b91b4b8..891437f 100644 --- a/pkg/control/ut_messaging_test.go +++ b/pkg/control/ut_messaging_test.go @@ -4509,6 +4509,373 @@ func TestRESTFullAmountReportSubReqAndSubDelOk(t *testing.T) { mainCtrl.VerifyCounterValues(t) } */ + +func TestRESTSubReqReportSameActionDiffEventTriggerDefinitionLen(t *testing.T) { + CaseBegin("TestRESTSubReqReportSameActionDiffEventTriggerDefinitionLen") + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 2}, + Counter{cSubRespFromE2, 2}, + Counter{cSubRespToXapp, 2}, + Counter{cSubDelReqFromXapp, 2}, + Counter{cSubDelReqToE2, 2}, + Counter{cSubDelRespFromE2, 2}, + Counter{cSubDelRespToXapp, 2}, + }) + + // Req1 + var params *teststube2ap.RESTSubsReqParams = nil + + //Subs Create + restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1) + + queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"}) + + // Req2 + params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount) + params.SetMeid("RAN_NAME_1") + eventTriggerDefinition := "1234" + params.SetSubEventTriggerDefinition(eventTriggerDefinition) + + restSubId2 := xappConn2.SendRESTSubsReq(t, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2) + crereq, cremsg := e2termConn1.RecvSubsReq(t) + xappConn2.ExpectRESTNotification(t, restSubId2) + e2termConn1.SendSubsResp(t, crereq, cremsg) + e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2) + + deleteXapp1Subscription(t, &restSubId1) + deleteXapp2Subscription(t, &restSubId2) + + waitSubsCleanup(t, e2SubsId1, 10) + waitSubsCleanup(t, e2SubsId2, 10) + + mainCtrl.VerifyCounterValues(t) + +} + +func TestRESTSubReqReportSameActionDiffActionListLen(t *testing.T) { + CaseBegin("TestRESTSubReqReportSameActionDiffActionListLen") + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 2}, + Counter{cSubRespFromE2, 2}, + Counter{cSubRespToXapp, 2}, + Counter{cSubDelReqFromXapp, 2}, + Counter{cSubDelReqToE2, 2}, + Counter{cSubDelRespFromE2, 2}, + Counter{cSubDelRespToXapp, 2}, + }) + + // Req1 + var params *teststube2ap.RESTSubsReqParams = nil + + //Subs Create + restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1) + + queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"}) + + // Req2 + params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount) + params.SetMeid("RAN_NAME_1") + + actionId := int64(1) + actionType := "report" + actionDefinition := "56781" + subsequestActionType := "continue" + timeToWait := "w10ms" + params.AppendActionToActionToBeSetupList(actionId, actionType, actionDefinition, subsequestActionType, timeToWait) + + restSubId2 := xappConn2.SendRESTSubsReq(t, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2) + crereq, cremsg := e2termConn1.RecvSubsReq(t) + xappConn2.ExpectRESTNotification(t, restSubId2) + e2termConn1.SendSubsResp(t, crereq, cremsg) + e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2) + + deleteXapp1Subscription(t, &restSubId1) + deleteXapp2Subscription(t, &restSubId2) + + waitSubsCleanup(t, e2SubsId1, 10) + waitSubsCleanup(t, e2SubsId2, 10) + + mainCtrl.VerifyCounterValues(t) + +} + +func TestRESTSubReqReportSameActionDiffActionID(t *testing.T) { + CaseBegin("TestRESTSubReqReportSameActionDiffActionID") + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 2}, + Counter{cSubRespFromE2, 2}, + Counter{cSubRespToXapp, 2}, + Counter{cSubDelReqFromXapp, 2}, + Counter{cSubDelReqToE2, 2}, + Counter{cSubDelRespFromE2, 2}, + Counter{cSubDelRespToXapp, 2}, + }) + + // Req1 + var params *teststube2ap.RESTSubsReqParams = nil + + //Subs Create + restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1) + + queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"}) + + // Req2 + params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount) + params.SetMeid("RAN_NAME_1") + params.SetSubActionIDs(int64(2)) + + restSubId2 := xappConn2.SendRESTSubsReq(t, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2) + crereq, cremsg := e2termConn1.RecvSubsReq(t) + xappConn2.ExpectRESTNotification(t, restSubId2) + e2termConn1.SendSubsResp(t, crereq, cremsg) + e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2) + + deleteXapp1Subscription(t, &restSubId1) + deleteXapp2Subscription(t, &restSubId2) + + waitSubsCleanup(t, e2SubsId1, 10) + waitSubsCleanup(t, e2SubsId2, 10) + + mainCtrl.VerifyCounterValues(t) + +} + +func TestRESTSubReqDiffActionType(t *testing.T) { + CaseBegin("TestRESTSubReqDiffActionType") + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 2}, + Counter{cSubRespFromE2, 2}, + Counter{cSubRespToXapp, 2}, + Counter{cSubDelReqFromXapp, 2}, + Counter{cSubDelReqToE2, 2}, + Counter{cSubDelRespFromE2, 2}, + Counter{cSubDelRespToXapp, 2}, + }) + + // Req1 + params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount) + + //Subs Create + restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1) + + queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"}) + + // Req2 + params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount) + params.SetMeid("RAN_NAME_1") + + restSubId2 := xappConn2.SendRESTSubsReq(t, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2) + crereq, cremsg := e2termConn1.RecvSubsReq(t) + xappConn2.ExpectRESTNotification(t, restSubId2) + e2termConn1.SendSubsResp(t, crereq, cremsg) + e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2) + + deleteXapp1Subscription(t, &restSubId1) + deleteXapp2Subscription(t, &restSubId2) + + waitSubsCleanup(t, e2SubsId1, 10) + waitSubsCleanup(t, e2SubsId2, 10) + + mainCtrl.VerifyCounterValues(t) + +} + +func TestRESTSubReqPolicyAndSubDelOkSameAction(t *testing.T) { + CaseBegin("TestRESTSubReqPolicyAndSubDelOkSameAction") + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 2}, + Counter{cSubRespFromE2, 2}, + Counter{cSubRespToXapp, 2}, + Counter{cSubDelReqFromXapp, 2}, + Counter{cSubDelReqToE2, 2}, + Counter{cSubDelRespFromE2, 2}, + Counter{cSubDelRespToXapp, 2}, + }) + + // Req1 + params := xappConn1.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount) + + //Subs Create + restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1) + + queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"}) + + // Req2 + params = xappConn2.GetRESTSubsReqPolicyParams(subReqCount, actionDefinitionPresent, policyParamCount) + params.SetMeid("RAN_NAME_1") + + restSubId2 := xappConn2.SendRESTSubsReq(t, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2) + crereq, cremsg := e2termConn1.RecvSubsReq(t) + xappConn2.ExpectRESTNotification(t, restSubId2) + e2termConn1.SendSubsResp(t, crereq, cremsg) + e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2) + + deleteXapp1Subscription(t, &restSubId1) + deleteXapp2Subscription(t, &restSubId2) + + waitSubsCleanup(t, e2SubsId1, 10) + waitSubsCleanup(t, e2SubsId2, 10) + + mainCtrl.VerifyCounterValues(t) + +} + +func TestRESTSubReqReportSameActionDiffActionDefinitionLen(t *testing.T) { + CaseBegin("TestRESTSubReqReportSameActionDiffActionDefinitionLen") + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 2}, + Counter{cSubRespFromE2, 2}, + Counter{cSubRespToXapp, 2}, + Counter{cSubDelReqFromXapp, 2}, + Counter{cSubDelReqToE2, 2}, + Counter{cSubDelRespFromE2, 2}, + Counter{cSubDelRespToXapp, 2}, + }) + + // Req1 + var params *teststube2ap.RESTSubsReqParams = nil + + //Subs Create + restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1) + + queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"}) + + // Req2 + params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount) + params.SetMeid("RAN_NAME_1") + actionDefinition := "5678" + params.SetSubActionDefinition(actionDefinition) + + restSubId2 := xappConn2.SendRESTSubsReq(t, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2) + crereq, cremsg := e2termConn1.RecvSubsReq(t) + xappConn2.ExpectRESTNotification(t, restSubId2) + e2termConn1.SendSubsResp(t, crereq, cremsg) + e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2) + + deleteXapp1Subscription(t, &restSubId1) + deleteXapp2Subscription(t, &restSubId2) + + waitSubsCleanup(t, e2SubsId1, 10) + waitSubsCleanup(t, e2SubsId2, 10) + + mainCtrl.VerifyCounterValues(t) + +} + +func TestRESTSubReqReportSameActionDiffActionDefinitionContents(t *testing.T) { + CaseBegin("TestRESTSubReqReportSameActionDiffActionDefinitionContents") + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 2}, + Counter{cSubRespFromE2, 2}, + Counter{cSubRespToXapp, 2}, + Counter{cSubDelReqFromXapp, 2}, + Counter{cSubDelReqToE2, 2}, + Counter{cSubDelRespFromE2, 2}, + Counter{cSubDelRespToXapp, 2}, + }) + + // Req1 + var params *teststube2ap.RESTSubsReqParams = nil + + //Subs Create + restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1) + + queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"}) + + // Req2 + params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount) + params.SetMeid("RAN_NAME_1") + actionDefinition := "56782" + params.SetSubActionDefinition(actionDefinition) + + restSubId2 := xappConn2.SendRESTSubsReq(t, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2) + crereq, cremsg := e2termConn1.RecvSubsReq(t) + xappConn2.ExpectRESTNotification(t, restSubId2) + e2termConn1.SendSubsResp(t, crereq, cremsg) + e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2) + + deleteXapp1Subscription(t, &restSubId1) + deleteXapp2Subscription(t, &restSubId2) + + waitSubsCleanup(t, e2SubsId1, 10) + waitSubsCleanup(t, e2SubsId2, 10) + + mainCtrl.VerifyCounterValues(t) + +} + +func TestRESTSubReqReportSameActionDiffSubsAction(t *testing.T) { + CaseBegin("TestRESTSubReqReportSameActionDiffSubsAction") + + mainCtrl.CounterValuesToBeVeriefied(t, CountersToBeAdded{ + Counter{cSubReqFromXapp, 2}, + Counter{cSubReqToE2, 2}, + Counter{cSubRespFromE2, 2}, + Counter{cSubRespToXapp, 2}, + Counter{cSubDelReqFromXapp, 2}, + Counter{cSubDelReqToE2, 2}, + Counter{cSubDelRespFromE2, 2}, + Counter{cSubDelRespToXapp, 2}, + }) + + // Req1 + var params *teststube2ap.RESTSubsReqParams = nil + + //Subs Create + restSubId1, e2SubsId1 := createSubscription(t, xappConn1, e2termConn1, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId1) + + queryXappSubscription(t, int64(e2SubsId1), "RAN_NAME_1", []string{"localhost:13560"}) + + // Req2 + params = xappConn2.GetRESTSubsReqReportParams(subReqCount, parameterSet, actionDefinitionPresent, actionParamCount) + params.SetMeid("RAN_NAME_1") + params.SetTimeToWait("w200ms") + restSubId2 := xappConn2.SendRESTSubsReq(t, params) + xapp.Logger.Info("Send REST subscriber request for subscriberId : %v", restSubId2) + crereq, cremsg := e2termConn1.RecvSubsReq(t) + xappConn2.ExpectRESTNotification(t, restSubId2) + e2termConn1.SendSubsResp(t, crereq, cremsg) + e2SubsId2 := xappConn2.WaitRESTNotification(t, restSubId2) + + deleteXapp1Subscription(t, &restSubId1) + deleteXapp2Subscription(t, &restSubId2) + + waitSubsCleanup(t, e2SubsId1, 10) + waitSubsCleanup(t, e2SubsId2, 10) + + mainCtrl.VerifyCounterValues(t) + +} + //////////////////////////////////////////////////////////////////////////////////// // Services for UT cases //////////////////////////////////////////////////////////////////////////////////// diff --git a/pkg/teststube2ap/stubE2.go b/pkg/teststube2ap/stubE2.go index 4c8c08d..5604393 100644 --- a/pkg/teststube2ap/stubE2.go +++ b/pkg/teststube2ap/stubE2.go @@ -908,6 +908,58 @@ func (p *RESTSubsReqParams) SetSubActionTypes(actionType string) { } } +func (p *RESTSubsReqParams) SetSubActionIDs(actionId int64) { + + for _, subDetail := range p.SubsReqParams.SubscriptionDetails { + for _, action := range subDetail.ActionToBeSetupList { + if action != nil { + action.ActionID = &actionId + } + } + } +} + +func (p *RESTSubsReqParams) SetSubActionDefinition(actionDefinition string) { + + for _, subDetail := range p.SubsReqParams.SubscriptionDetails { + for _, action := range subDetail.ActionToBeSetupList { + if action != nil { + action.ActionDefinition.OctetString = actionDefinition + } + } + } +} + +func (p *RESTSubsReqParams) SetSubEventTriggerDefinition(eventTriggerDefinition string) { + + for _, subDetail := range p.SubsReqParams.SubscriptionDetails { + if subDetail != nil { + subDetail.EventTriggers.OctetString = eventTriggerDefinition + } + } +} + +func (p *RESTSubsReqParams) AppendActionToActionToBeSetupList(actionId int64, actionType string, actionDefinition string, subsequentActionType string, timeToWait string) { + + actionToBeSetup := &clientmodel.ActionToBeSetup{ + ActionID: &actionId, + ActionType: &actionType, + ActionDefinition: &clientmodel.ActionDefinition{ + OctetString: actionDefinition, + }, + SubsequentAction: &clientmodel.SubsequentAction{ + SubsequentActionType: &subsequentActionType, + TimeToWait: &timeToWait, + }, + } + + for _, subDetail := range p.SubsReqParams.SubscriptionDetails { + if subDetail != nil { + subDetail.ActionToBeSetupList = append(subDetail.ActionToBeSetupList, actionToBeSetup) + } + } +} + func (p *RESTSubsReqParams) SetRMREndpoint(RMR_port int64, host string) { p.SubsReqParams.ClientEndpoint.RMRPort = &RMR_port -- 2.16.6