+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+TEST(sctp, TestE2SetupRequestReceivedThenRICserviceUpdateMessageTriggered) {
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ E2AP_PDU_t pdu;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ create_asnInitiatingReq_Procedure_RICserviceUpdate(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+
+TEST(sctp, TestE2SetupRequestReceivedThenResetMessageTriggered) {
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ E2AP_PDU_t pdu;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ create_asnInitiatingReq_Procedure_Reset(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+TEST(sctp, TestE2SetupRequestReceivedThenRICcontrolMessageTriggered) {
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ E2AP_PDU_t pdu;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ create_asnSuccessfulMsg_Procedure_RICcontrol(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+
+TEST(sctp, TestE2SetupRequestReceivedThenRICcontrolMessageTriggeredAndGotControlFailure) {
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ E2AP_PDU_t pdu;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ create_asnUnSuccsesfulMsg_Procedure_RICcontrol(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+
+TEST(sctp, TestE2SetupRequestReceivedThenRICsubscriptionMessageTriggered) {
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ E2AP_PDU_t pdu;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ create_asnSuccessfulMsg_Procedure_RICsubscription(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+
+TEST(sctp, TestE2SetupRequestReceivedThenRICsubscriptionMessageTriggeredAndGotSubsFailure) {
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ E2AP_PDU_t pdu;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ create_asnUnSuccsesfulMsg_Procedure_RICsubscription(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+
+TEST(sctp, TestE2SetupRequestReceivedThenRICsubscriptionDeleteMessageTriggered) {
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ E2AP_PDU_t pdu;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ create_asnSuccessfulMsg_Procedure_RICsubscriptionDelete(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+
+TEST(sctp, TestE2SetupRequestReceivedThenRICsubscriptionDeleteMessageTriggeredAndGotSubDelFailure) {
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ E2AP_PDU_t pdu;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ create_asnUnSuccsesfulMsg_Procedure_RICsubscriptionDelete(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+
+void errorIndicationBasedOnProcedureCodeOrProcedureStatus(E2AP_PDU_t *pdu,
+ Sctp_Map_t *sctpMap,
+ ReportingMessages_t &message,
+ RmrMessagesBuffer_t &rmrMessageBuffer,
+ sctp_params_t &sctp_ut_params) {
+
+ init_memories(message, rmrMessageBuffer, sctp_ut_params);
+
+ pdu->choice.initiatingMessage->procedureCode = ProcedureCode_id_ErrorIndication;
+ pdu->choice.initiatingMessage->value.present = InitiatingMessage__value_PR_ErrorIndication;
+
+ pdu->choice.initiatingMessage->value.choice.ErrorIndication.protocolIEs.list.array = (ErrorIndication_IEs**) malloc(1 * sizeof(ErrorIndication_IEs*));
+ pdu->choice.initiatingMessage->value.choice.ErrorIndication.protocolIEs.list.count = 1;
+ pdu->choice.initiatingMessage->value.choice.ErrorIndication.protocolIEs.list.size = sizeof(ErrorIndication_IEs);
+ pdu->choice.initiatingMessage->value.choice.ErrorIndication.protocolIEs.list.array[numberZero] = (ErrorIndication_IEs*) malloc(sizeof(ErrorIndication_IEs));
+
+ ErrorIndication_IEs_t *ie = pdu->choice.initiatingMessage->value.choice.ErrorIndication.protocolIEs.list.array[numberZero];
+
+ ie->id = ProtocolIE_ID_id_TransactionID;
+ ie->criticality = Criticality_reject;
+ ie->value.present = ErrorIndication_IEs__value_PR_TransactionID;
+ ie->value.choice.TransactionID = numberThree;
+
+ int streamId = numberZero;
+
+ asnInitiatingRequest(pdu, sctpMap, message, rmrMessageBuffer, streamId);
+ delete_memories_initiatingMessage(pdu, rmrMessageBuffer,false, false, true);
+}
+
+TEST(sctp, TestDropErrorIndicationReceivedWithInvalidTidWhenE2SetupOngoingProcedureOccurredBasedOnOngoingProcedureStatus) {
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ E2AP_PDU_t pdu;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ errorIndicationBasedOnProcedureCodeOrProcedureStatus(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+
+TEST(sctp, TestRemovalOfE2ConnectionEntryFromMap) {
+
+ E2AP_PDU_t pdu;
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ sctp_params_t sctp_ut_params;
+
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ removeE2ConnectionEntryFromMap(message.message.enodbName);
+
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+}
+
+TEST(sctp, TestUnsupportedRicSubsDelRequiredBeforeE2SetupReqThenE2TShouldNotCrash) {
+ E2AP_PDU_t pdu;
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+
+ unsupportedRicSubscriptionDelReq(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+}
+
+TEST(sctp, TestUnsupportedRicSubsDelRequiredAfterE2SetupReqThenE2TShouldNotCrash) {
+ E2AP_PDU_t pdu;
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ unsupportedRicSubscriptionDelReq(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+}
+
+TEST(sctp, TestUnsupportedE2ConnectionUpdateAckBeforeE2SetupReqThenE2TShouldNotCrash) {
+ E2AP_PDU_t pdu;
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ sctp_params_t sctp_ut_params;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.successfulOutcome = (SuccessfulOutcome*) malloc(sizeof(SuccessfulOutcome));
+ memset( (void*)pdu.choice.successfulOutcome, numberZero, sizeof(pdu.choice.successfulOutcome));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+
+ unsupportedE2ConnectionUpdateAck(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ if(pdu.choice.successfulOutcome) {
+ free(pdu.choice.successfulOutcome);
+ pdu.choice.successfulOutcome = NULL;
+ }
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+}
+
+TEST(sctp, TestUnsupportedE2ConnectionUpdateAckAfterE2SetupReqThenE2TShouldNotCrash) {
+ E2AP_PDU_t pdu;
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ pdu.choice.successfulOutcome = (SuccessfulOutcome*) malloc(sizeof(SuccessfulOutcome));
+ memset( (void*)pdu.choice.successfulOutcome, numberZero, sizeof(pdu.choice.successfulOutcome));
+
+ unsupportedE2ConnectionUpdateAck(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+ if(pdu.choice.successfulOutcome) {
+ free(pdu.choice.successfulOutcome);
+ pdu.choice.successfulOutcome = NULL;
+ }
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+
+}
+
+TEST(sctp, TestUnsupportedE2ConnectionUpdateFailBeforeE2SetupReqThenE2TShouldNotCrash) {
+ E2AP_PDU_t pdu;
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ sctp_params_t sctp_ut_params;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.unsuccessfulOutcome = (UnsuccessfulOutcome*) malloc(sizeof(UnsuccessfulOutcome));
+ memset( (void*)pdu.choice.unsuccessfulOutcome, numberZero, sizeof(pdu.choice.unsuccessfulOutcome));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+
+ unsupportedE2ConnectionUpdateFail(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ if(pdu.choice.unsuccessfulOutcome) {
+ free(pdu.choice.unsuccessfulOutcome);
+ pdu.choice.unsuccessfulOutcome = NULL;
+ }
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+}
+
+TEST(sctp, TestUnsupportedE2ConnectionUpdateFailAfterE2SetupReqThenE2TShouldNotCrash) {
+ E2AP_PDU_t pdu;
+ Sctp_Map_t *sctpMap = new Sctp_Map_t();
+ ReportingMessages_t message;
+ RmrMessagesBuffer_t rmrMessageBuffer;
+ sctp_params_t sctp_ut_params;
+ struct E2NodeConnectionHandling e2NodeConnectionHandling;
+ memset(&e2NodeConnectionHandling, numberZero, sizeof(e2NodeConnectionHandling));
+ e2NodeConnectionHandling.e2tProcedureOngoingStatus = E2_SETUP_PROCEDURE_NOT_INITIATED;
+ e2NodeConnectionHandling.e2SetupProcedureTransactionId = numberOne;
+
+ pdu.present = E2AP_PDU_PR_initiatingMessage;
+ pdu.choice.initiatingMessage = (InitiatingMessage*) malloc(sizeof(InitiatingMessage));
+ memset( (void*)pdu.choice.initiatingMessage, numberZero, sizeof(pdu.choice.initiatingMessage));
+ memset( (void*)&message, numberZero, sizeof(message));
+ memset( (void*)&rmrMessageBuffer, numberZero, sizeof(rmrMessageBuffer));
+
+ snprintf(sctp_ut_params.rmrAddress, strlen("tcp:4560 "), "%s", (char*)"tcp:4560");
+ rmrMessageBuffer.rmrCtx = rmr_init(sctp_ut_params.rmrAddress, RECEIVE_XAPP_BUFFER_SIZE, 0x01);
+
+ create_asnInitiatingReq_Procedure_E2Setup(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ pdu.choice.unsuccessfulOutcome = (UnsuccessfulOutcome*) malloc(sizeof(UnsuccessfulOutcome));
+ memset( (void*)pdu.choice.unsuccessfulOutcome, numberZero, sizeof(pdu.choice.unsuccessfulOutcome));
+
+ unsupportedE2ConnectionUpdateFail(&pdu, sctpMap, message, rmrMessageBuffer, sctp_ut_params);
+
+ if(pdu.choice.initiatingMessage) {
+ free(pdu.choice.initiatingMessage);
+ pdu.choice.initiatingMessage = NULL;
+ }
+ if(pdu.choice.unsuccessfulOutcome) {
+ free(pdu.choice.unsuccessfulOutcome);
+ pdu.choice.unsuccessfulOutcome = NULL;
+ }
+ if(sctpMap) {
+ delete sctpMap;
+ sctpMap = NULL;
+ }
+ resetToDefaultValueAsTeardown(message.message.enodbName);
+ ASSERT_TRUE(currentE2tProcedureOngoingStatus(message.message.enodbName) == E2T_Procedure_States::E2_SETUP_PROCEDURE_NOT_INITIATED);
+}
+
+TEST(sctp, TestForInfo) {
+char* log_level = "3";
+update_mdc_log_level_severity(log_level);
+}
+
+TEST(sctp, TestForWarn) {
+char* log_level = "2";
+update_mdc_log_level_severity(log_level);
+}
+
+TEST(sctp, TestForErr) {
+char* log_level = "1";
+update_mdc_log_level_severity(log_level);
+}
+
+int main(int argc, char **argv) {
+
+ testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();