X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2FMakefile;fp=test%2FMakefile;h=8ffb30a24783dcdaf875f5508b35afdcbdf1fbf9;hb=dc68642f5676cdd49f3ef92f983b319e21f16afa;hp=0000000000000000000000000000000000000000;hpb=0054ece5d9d4bcb28ecda2f0f36584f6a64fc869;p=ric-app%2Fadmin.git diff --git a/test/Makefile b/test/Makefile new file mode 100644 index 0000000..8ffb30a --- /dev/null +++ b/test/Makefile @@ -0,0 +1,184 @@ +#================================================================================== + +# Copyright (c) 2018-2019 AT&T Intellectual Property. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#================================================================================== + +ifeq ($(MODE), perf) + CXX:= g++ -g -O2 -fprofile-arcs -ftest-coverage + CC:= gcc -g -O2 -fprofile-arcs -ftest-coverage +else + CXX:= g++ -g -fprofile-arcs -ftest-coverage + CC:= gcc -g -fprofile-arcs -ftest-coverage +endif + +SRC_DIR=../src +PLUGINS=../src/plugin-interface +ASN1C_DIR=../asn1c_defs +E2AP_C_DIR=../src/E2AP-c +SUBSCR_DIR = ../src/E2AP-c/subscription +E2SM_DIR=../src/E2SM +X2AP_DIR=../src/X2AP +JSON_DIR=../src/json +A1= ./a1 +PROTECTOR=../src/protector-plugin + +CLOGFLAGS= `pkg-config mdclog --cflags` +BASEFLAGS= -Wall -std=c++14 $(CLOGFLAGS) -DASN_DISABLE_OER_SUPPORT +C_BASEFLAGS= -Wall $(CLOGFLAGS) -DASN_DISABLE_OER_SUPPORT +XAPPFLAGS= -I$(SRC_DIR) +PLUGINFLAGS= -I$(PLUGINS) +E2FLAGS= -I$(E2AP_C_DIR) -I$(ASN1C_DIR)/ +SUBSCRFLAGS= -I$(SUBSCR_DIR) -I$(ASN1C_DIR) +E2SMFLAGS = -I$(E2SM_DIR) -I$(ASN1C_DIR)/ +X2FLAGS= -I$(X2AP_DIR) -I$(ASN1C_DIR)/ +A1FLAGS = -I$(A1) +JSONFLAGS= -I$(JSON_DIR) +PROTECTORFLAGS= -I$(PROTECTOR) + +LIBS= -lrmr_nng -lnng -lpthread -lm + +# Logging library +LOGLIBS= `pkg-config mdclog --libs` + +XAPP_UTILS_SRC= $(SRC_DIR)/xapp_utils.cc +XAPP_MPROC_SRC= $(SRC_DIR)/message_processor_class.cc +E2AP_SRC= $(wildcard $(E2AP)/*.cc) +X2AP_SRC= $(wildcard $(X2AP_DIR)/*.cc) +A1_SRC= $(wildcard $(A1)/*.cc) +PLUGINS_SRC = $(wildcard $(PLUGINS)/*.cc) +E2AP_C_SRC= $(wildcard $(E2AP_C_DIR)/*.cc) +SUBSCR_SRC= $(wildcard $(SUBSCR_DIR)/*.cc) +E2SM_SRC= $(wildcard $(E2SM_DIR)/*.cc) +X2AP_SRC = $(wildcard $(X2AP_DIR)/*.cc) +ASN1C_SRC = $(wildcard $(ASN1C_DIR)/*.c) +JSON_SRC = $(wildcard $(JSON_DIR)/*.cc) +PROTECTOR_SRC = $(wildcard $(PROTECTOR)/*.cc) + +#=========================================== +# TEST MODULES +XAPP_UNIT_TEST = unit_test_xapp.o +X2PDU_UNIT_TEST= unit_test_pdu.o +E2SUB_UNIT_TEST= unit_test_subscription.o +SUBSCRIPTION_FLOW_UNIT_TEST = unit_test_subscription_flow.o +E2AP_IND_UNIT_TEST= unit_test_e2ap_indication.o +E2AP_CTRL_UNIT_TEST= unit_test_e2ap_control.o +E2SM_UNIT_TEST=unit_test_e2sm.o +JSON_UNIT_TEST = unit_test_json.o +SGNB_ADD_REQ_UNIT_TEST = unit_test_sgnb_addition_request.o +MESSAGE_PROC_UNIT_TEST = unit_test_message_processor.o +SLIDING_WINDOW_UNIT_TEST = unit_test_sliding_window.o +PROTECTOR_UNIT_TEST = unit_test_protector_plugin.o +ADMISSION_UNIT_TEST = unit_test_admission_policy.o +MOCK_E2TERM_OBJ= mock_e2term_server.o +MOCK_A1SERVER_OBJ = mock_a1_mediator.o +#=========================================== + + +# SOURCE MODULES +XAPP_UTILS_OBJ = $(XAPP_UTILS_SRC:.cc=.o) +XAPP_MPROC_OBJ= $(XAPP_MPROC_SRC:.cc=.o) +E2AP_OBJ=$(E2AP_SRC:.cc=.o) +X2AP_OBJ=$(X2AP_SRC:.cc=.o) +A1_OBJ= $(A1_SRC:.cc=.o) +PLUGINS_OBJ = $(PLUGINS_SRC:.cc=.o) +SUBSCR_OBJ= $(SUBSCR_SRC:.cc=.o) +E2AP_C_OBJ = $(E2AP_C_SRC:.cc=.o) +E2SM_OBJ = $(E2SM_SRC:.cc=.o) +ASN1C_MODULES = $(ASN1C_SRC:.c=.o) +X2AP_OBJ = $(X2AP_SRC:.cc=.o) +JSON_OBJ = $(JSON_SRC:.cc=.o) +PROTECTOR_OBJ = $(PROTECTOR_SRC:.cc=.o) + +#=========================================== + +$(XAPP_UTILS_OBJ) $(XAPP_UNIT_TEST) :export CPPFLAGS= $(BASEFLAGS) $(XAPPFLAGS) + +$(A1_OBJ) $(MOCK_A1SERVER_OBJ) $(JSON_UNIT_TEST) :export CPPFLAGS= $(BASEFLAGS) $(A1FLAGS) $(XAPPFLAGS) + +$(XAPP_MPROC_OBJ) $(MESSAGE_PROC_UNIT_TEST) $(MOCK_SUB_CLIENT_OBJ): export CPPFLAGS=$(BASEFLAGS) $(JSONFLAGS) $(XAPPFLAGS) $(E2FLAGS) $(X2FLAGS) $(SUBSCRFLAGS) $(PLUGINFLAGS) $(PROTECTORFLAGS) $(E2SMFLAGS) + +$(SUBSCRIPTION_FLOW_UNIT_TEST): export CPPFLAGS=$(BASEFLAGS) $(SUBSCRFLAGS) $(E2SMFLAGS) + +$(E2AP_C_OBJ) $(E2AP_IND_UNIT_TEST) $(E2AP_CTRL_UNIT_TEST) : export CPPFLAGS=$(BASEFLAGS) $(E2FLAGS) + +$(SUBSCR_OBJ) $(E2SUB_UNIT_TEST): export CPPFLAGS=$(BASEFLAGS) $(SUBSCRFLAGS) + +$(E2SM_OBJ) $(E2SM_UNIT_TEST): export CPPFLAGS= $(BASEFLAGS) $(E2SMFLAGS) + +$(ASN1C_MODULES): export CFLAGS = $(C_BASEFLAGS) -I$(ASN1C_DIR)/ + +$(X2AP_OBJ) $(SGNB_ADD_REQ_UNIT_TEST) : export CPPFLAGS= $(X2FLAGS) $(BASEFLAGS) + +$(PLUGINS_OBJ) : export CPPFLAGS = $(BASEFLAGS) $(JSONFLAGS) + +$(MOCK_E2TERM_OBJ): export CPPFLAGS = $(BASEFLAGS) $(SUBSCRFLAGS) $(E2FLAGS) $(E2SMFLAGS) $(XAPPFLAGS) $(X2FLAGS) + +$(JSON_OBJ) $(JSON_UNIT_TEST): export CPPFLAGS= $(BASEFLAGS) $(JSONFLAGS) + +$(PROTECTOR_OBJ) $(SLIDING_WINDOW_UNIT_TEST) $(PROTECTOR_UNIT_TEST) $(ADMISSION_UNIT_TEST): export CPPFLAGS = $(BASEFLAGS) $(PLUGINFLAGS) $(JSONFLAGS) $(PROTECTORFLAGS) $(X2FLAGS) + + +TEST_XAPP: $(XAPP_UTILS_OBJ) $(XAPP_UNIT_TEST) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_SUBSCRIPTION_FLOW: $(SUBSCRIPTION_FLOW_UNIT_TEST) $(SUBSCR_OBJ) $(E2SM_OBJ) $(ASN1C_MODULES) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_SUBSCRIPTION: $(SUBSCR_OBJ) $(E2SUB_UNIT_TEST) $(ASN1C_MODULES) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_E2AP_INDICATION: $(E2AP_C_OBJ) $(E2AP_IND_UNIT_TEST) $(ASN1C_MODULES) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_E2AP_CONTROL: $(E2AP_C_OBJ) $(E2AP_CTRL_UNIT_TEST) $(ASN1C_MODULES) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_E2SM: $(E2SM_OBJ) $(E2SM_UNIT_TEST) $(ASN1C_MODULES) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_X2_SGNB: $(X2AP_OBJ) $(SGNB_ADD_REQ_UNIT_TEST) $(ASN1C_MODULES) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_JSON: $(JSON_OBJ) $(JSON_UNIT_TEST) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_MESSAGE_PROCESSOR: $(MESSAGE_PROC_UNIT_TEST) $(XAPP_MPROC_OBJ) $(ASN1C_MODULES) $(E2AP_C_OBJ) $(PROTECTOR_OBJ) $(E2SM_OBJ) $(X2AP_OBJ) $(SUBSCR_OBJ) $(JSON_OBJ) $(PLUGINS_OBJ) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_ADMISSION: $(ADMISSION_UNIT_TEST) $(PROTECTOR_OBJ) $(X2AP_OBJ) $(ASN1C_MODULES) $(PLUGINS_OBJ) $(JSON_OBJ) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_PROTECTOR_PLUGIN: $(PROTECTOR_UNIT_TEST) $(PROTECTOR_OBJ) $(X2AP_OBJ) $(ASN1C_MODULES) $(PLUGINS_OBJ) $(JSON_OBJ) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +TEST_SLIDING_WINDOW: $(SLIDING_WINDOW_UNIT_TEST) $(PROTECTOR_OBJ) $(X2AP_OBJ) $(ASN1C_MODULES) $(PLUGINS_OBJ) $(JSON_OBJ) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + + +mock-e2term-server: $(XAPP_UTILS_OBJ) $(E2AP_C_OBJ) $(SUBSCR_OBJ) $(E2SM_OBJ) $(X2AP_OBJ) $(MOCK_E2TERM_OBJ) $(ASN1C_MODULES) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) $(CPPFLAGS) + + +mock-a1-server: $(A1_OBJ) $(MOCK_A1SERVER_OBJ) $(XAPP_UTILS_OBJ) + $(CXX) -o $@ $^ $(LIBS) $(LOGLIBS) + +all_tests: TEST_XAPP TEST_SUBSCRIPTION TEST_ADMISSION TEST_E2AP_INDICATION TEST_E2AP_CONTROL TEST_E2SM TEST_X2_SGNB TEST_JSON TEST_SUBSCRIPTION_FLOW TEST_MESSAGE_PROCESSOR TEST_SLIDING_WINDOW TEST_PROTECTOR_PLUGIN + + +install: mock-e2term-server + install -D mock-e2term-server /usr/local/bin/mock-e2term-server +clean: + -rm TEST_* *.o e2e-test-client mock-e2term-server e2e-perf-client e2e-perf-server mock-a1-server + -cd ../src && make -f ../src/Makefile clean