RIC-E2-TERMINATION/TEST/e2test.cpp
)
+
+# Locate GTest
+string(REPLACE " " ";" REPLACED_FLAGS ${CMAKE_CXX_FLAGS})
+string(CONCAT FINAL_FLAG ${REPLACED_FLAGS} ";-DUNIT_TEST")
+find_package(GTest REQUIRED)
+include_directories(${GTEST_INCLUDE_DIRS})
+# Link runTests with what we want to test and the GTest and pthread library
+add_executable(sctp_test /opt/e2/RIC-E2-TERMINATION/TEST/sctp_thread_test.cpp
+ RIC-E2-TERMINATION/sctpThread.h
+ RIC-E2-TERMINATION/sctpThread.cpp
+ RIC-E2-TERMINATION/base64.h
+ RIC-E2-TERMINATION/base64.cpp
+
+ )
+target_link_libraries(sctp_test ${GTEST_LIBRARIES} pthread)
+target_compile_options(sctp_test PRIVATE ${FINAL_FLAG})
+
+
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake_modules")
set(CMAKE_BUILD_TYPE "Debug")
target_link_libraries(${PROJECT_TEST_NAME} gcov)
set(LDFLAGS "--coverage -fprofile-arcs")
+ message("PROJECT_SOURCE_DIR: ${PROJECT_SOURCE_DIR}")
# setup_target_for_coverage_lcov(${PROJECT_NAME}_coverage ${PROJECT_TEST_NAME} coverage)
- set(COVERAGE_LCOV_EXCLUDES ${PROJECT_SOURCE_DIR}/config'
- ${PROJECT_SOURCE_DIR}/log'
- '${PROJECT_SOURCE_DIR}/docs'
- '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/3rdparty'
- '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/oranE2'
- '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/TEST'
- '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/config')
+ set(COVERAGE_LCOV_EXCLUDES "${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/3rdparty/*"
+ "${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/oranE2/*"
+ "${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/TEST/*"
+ "${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/config/*")
set(COVERAGE_EXCLUDES '${PROJECT_SOURCE_DIR}/config'
${PROJECT_SOURCE_DIR}/log'
'${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/config')
append_coverage_compiler_flags()
SETUP_TARGET_FOR_COVERAGE_LCOV(NAME e2_coverage
- EXECUTABLE e2
+ EXECUTABLE e2
DEPENDENCIES e2)
endif ()
--- /dev/null
+#include <gtest/gtest.h>
+#include <gmock/gmock.h>
+#include "sctpThread.h"
+#include <sys/epoll.h>
+#include"E2AP-PDU.h"
+
+using namespace testing;
+
+TEST(sctp, TEST1) {
+ string s;
+ s = translateRmrErrorMessages(0);
+ EXPECT_THAT(s, HasSubstr("RMR_OK"));
+ s = translateRmrErrorMessages(1);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_BADARG"));
+ s = translateRmrErrorMessages(2);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_NOENDPT"));
+ s = translateRmrErrorMessages(3);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_EMPTY"));
+ s = translateRmrErrorMessages(4);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_NOHDR"));
+ s = translateRmrErrorMessages(5);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_SENDFAILED"));
+ s = translateRmrErrorMessages(6);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_CALLFAILED"));
+ s = translateRmrErrorMessages(7);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_NOWHOPEN"));
+ s = translateRmrErrorMessages(8);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_WHID"));
+ s = translateRmrErrorMessages(9);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_OVERFLOW"));
+ s = translateRmrErrorMessages(10);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_RETRY"));
+ s = translateRmrErrorMessages(11);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_RCVFAILED"));
+ s = translateRmrErrorMessages(12);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_TIMEOUT"));
+ s = translateRmrErrorMessages(13);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_UNSET"));
+ s = translateRmrErrorMessages(14);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_TRUNC"));
+ s = translateRmrErrorMessages(15);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_INITFAILED"));
+ s = translateRmrErrorMessages(16);
+ EXPECT_THAT(s, HasSubstr("RMR_ERR_NOTSUPP"));
+ s = translateRmrErrorMessages(17);
+ EXPECT_THAT(s, HasSubstr("UNDOCUMENTED RMR_ERR"));
+}
+
+auto *peerInfo = (ConnectedCU_t *)calloc(1, sizeof(ConnectedCU_t));
+
+TEST(sctp, TEST2) {
+ struct epoll_event event;
+ int epoll_fd = epoll_create1(0);
+ event.events = EPOLLIN;
+ event.data.fd = 0;
+ ConnectedCU_t data1;
+ ConnectedCU_t *data = &data1;
+ event.data.ptr = (void *)data;
+ sctp_params_t sctp_ut_params;
+ sctp_params_t* sctp = &sctp_ut_params;
+ ReportingMessages_t reporting_msg;
+ RmrMessagesBuffer_t rmrmessagesbuffer;
+ handleEinprogressMessages(event,reporting_msg,rmrmessagesbuffer,sctp);
+}
+
+TEST(sctp, TEST3) {
+ struct epoll_event event;
+ int epoll_fd = epoll_create1(0);
+ event.events = EPOLLIN;
+ event.data.fd = 0;
+ ConnectedCU_t data1;
+ ConnectedCU_t *data = &data1;
+ event.data.ptr = (void *)data;
+ sctp_params_t sctp_ut_params;
+ sctp_params_t* sctp = &sctp_ut_params;
+ Sctp_Map_t m1;
+ sctp ->sctpMap = &m1;
+ ReportingMessages_t reporting_msg;
+ RmrMessagesBuffer_t rmrmessagesbuffer;
+ handlepoll_error(event,reporting_msg,rmrmessagesbuffer,sctp);
+}
+
+
+TEST(sctp, TEST4) {
+
+ConnectedCU_t cu;
+ConnectedCU_t* connected_cu = &cu;
+Sctp_Map_t m1;
+Sctp_Map_t *m = &m1;
+cleanHashEntry(connected_cu,m);
+
+
+}
+
+TEST(sctp, TEST5) {
+
+sctp_params_t sctp_ut_params;
+sctp_params_t* sctp = &sctp_ut_params;
+handleConfigChange(sctp);
+}
+
+
+
+TEST(sctp, TEST6) {
+int epoll_fd = epoll_create1(0);
+ConnectedCU_t cu;
+ConnectedCU_t* peerinfo = &cu;
+Sctp_Map_t m1;
+Sctp_Map_t *m = &m1;
+modifyToEpoll(epoll_fd,peerinfo,2,m,"enodeb1",2);
+}
+
+
+int main(int argc, char **argv) {
+
+ testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+
+}
+
sctpParams.prometheusExposer = new Exposer(prometheusPath, 1);
sctpParams.prometheusExposer->RegisterCollectable(sctpParams.prometheusRegistry);
}
-
+#ifndef UNIT_TEST
int main(const int argc, char **argv) {
sctp_params_t sctpParams;
return 0;
}
-
+#endif
void handleTermInit(sctp_params_t &sctpParams) {
sendTermInit(sctpParams);
//send to e2 manager init of e2 term
socklen_t retValLen = 0;
auto rc = getsockopt(peerInfo->fileDescriptor, SOL_SOCKET, SO_ERROR, &retVal, &retValLen);
if (rc != 0 || retVal != 0) {
+#ifndef UNIT_TEST
if (rc != 0) {
rmrMessageBuffer.sendMessage->len = snprintf((char *)rmrMessageBuffer.sendMessage->payload, 256,
"%s|Failed SCTP Connection, after EINPROGRESS the getsockopt%s",
if (sendRequestToXapp(message, RIC_SCTP_CONNECTION_FAILURE, rmrMessageBuffer) != 0) {
mdclog_write(MDCLOG_ERR, "SCTP_CONNECTION_FAIL message failed to send to xAPP");
}
+#endif
memset(peerInfo->asnData, 0, peerInfo->asnLength);
peerInfo->asnLength = 0;
peerInfo->mtype = 0;
auto *peerInfo = (ConnectedCU_t *)event.data.ptr;
mdclog_write(MDCLOG_ERR, "epoll error, events %0x on fd %d, RAN NAME : %s",
event.events, peerInfo->fileDescriptor, peerInfo->enodbName);
+#ifndef UNIT_TEST
rmrMessageBuffer.sendMessage->len = snprintf((char *)rmrMessageBuffer.sendMessage->payload, 256,
"%s|Failed SCTP Connection",
if (sendRequestToXapp(message, RIC_SCTP_CONNECTION_FAILURE, rmrMessageBuffer) != 0) {
mdclog_write(MDCLOG_ERR, "SCTP_CONNECTION_FAIL message failed to send to xAPP");
}
-
+#endif
close(peerInfo->fileDescriptor);
params->sctpMap->erase(peerInfo->enodbName);
cleanHashEntry((ConnectedCU_t *) event.data.ptr, params->sctpMap);
m->erase(searchBuff);
m->erase(val->enodbName);
+#ifndef UNIT_TEST
free(val);
+#endif
}
/**
}
return str;
}
-
-