tests: move vapi C/C++ test files into src/

Type: improvement
Change-Id: Iaad004661db1e9076e6c27227878f1612fa7289f
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>
This commit is contained in:
Damjan Marion
2021-05-25 18:29:24 +02:00
committed by Damjan Marion
parent 6621abf49a
commit a2d6d352c6
7 changed files with 58 additions and 73 deletions

View File

@@ -14,6 +14,7 @@
include_directories (
${CMAKE_CURRENT_SOURCE_DIR}/..
${CMAKE_CURRENT_BINARY_DIR}/..
${CMAKE_CURRENT_BINARY_DIR}
)
add_vpp_library(vapiclient
@@ -58,3 +59,51 @@ install(
DESTINATION ${VPP_RUNTIME_DIR}
COMPONENT vpp-dev
)
vpp_find_path(SUBUNIT_INCLUDE_DIR NAMES subunit/child.h)
vpp_find_library(SUBUNIT_LIB NAMES subunit)
if(SUBUNIT_INCLUDE_DIR AND SUBUNIT_LIB)
message (STATUS "Found subunit in ${SUBUNIT_INCLUDE_DIR} and ${SUBUNIT_LIB}")
add_custom_command(
OUTPUT fake.api.vapi.h
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vapi_c_gen.py
ARGS --remove-path ${CMAKE_CURRENT_SOURCE_DIR}/fake.api.json
DEPENDS fake.api.json
COMMENT "Generating fake VAPI C header ${output_name}"
)
add_custom_command(
OUTPUT fake.api.vapi.hpp
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vapi_cpp_gen.py
ARGS --remove-path ${CMAKE_CURRENT_SOURCE_DIR}/fake.api.json
DEPENDS fake.api.json
COMMENT "Generating fake VAPI C++ header ${output_name}"
)
add_custom_target(fake_api_vapi_h DEPENDS fake.api.vapi.h)
add_custom_target(fake_api_vapi_hpp DEPENDS fake.api.vapi.hpp)
set(libs vppinfra vlibmemoryclient svm pthread check rt m vapiclient ${SUBUNIT_LIB})
add_vpp_executable(vapi_c_test
SOURCES
vapi_c_test.c
DEPENDS fake_api_vapi_h
LINK_LIBRARIES ${libs}
)
enable_language(CXX)
add_vpp_executable(vapi_cpp_test
SOURCES
vapi_cpp_test.cpp
DEPENDS fake_api_vapi_hpp
LINK_LIBRARIES ${libs}
)
else()
message (WARNING "subunit library not found - vapi tests disabled")
endif()

View File

@@ -194,10 +194,6 @@ sanity: test-dep
echo \"*******************************************************************\" &&\
false)"
.PHONY: ext-test-apps
ext-test-apps:
make -C ext test-apps
$(FAILED_DIR): reset
@mkdir -p $@
@@ -205,7 +201,7 @@ $(FAILED_DIR): reset
test-dep: $(PAPI_INSTALL_DONE) $(FAILED_DIR)
.PHONY: test
test: test-dep ext-test-apps sanity
test: test-dep sanity
$(call retest-func)
.PHONY: retest

View File

@@ -1,60 +0,0 @@
TEST_EXT_DIR=$(TEST_DIR)/ext
VAPI_BINDIR = $(TEST_BR)/vapi_test
VAPI_CBIN = $(addprefix $(VAPI_BINDIR), /vapi_c_test)
VAPI_CPPBIN = $(addprefix $(VAPI_BINDIR), /vapi_cpp_test)
VAPI_LIBS = \
-L$(VPP_INSTALL_PATH)/vpp/lib \
-lvppinfra -lvlibmemoryclient -lsvm -lpthread -lcheck -lrt -lm -lvapiclient
ifneq ($(filter centos,$(OS_ID)),$(OS_ID))
VAPI_LIBS += -lsubunit
endif
FLAGS = -g -Wall -lstdc++ -pthread -I$(WS_ROOT)/src -I$(VPP_INSTALL_PATH)/vpp/include -I$(VAPI_BINDIR)
CFLAGS = -std=gnu99 $(FLAGS)
CPPFLAGS = -std=c++11 $(FLAGS)
$(VAPI_BINDIR):
@mkdir -p $(VAPI_BINDIR)
CSRC = $(TEST_EXT_DIR)/vapi_c_test.c
$(VAPI_BINDIR)/fake.api.vapi.h: fake.api.json $(WS_ROOT)/src/vpp-api/vapi/vapi_c_gen.py | $(VAPI_BINDIR)
$(WS_ROOT)/src/vpp-api/vapi/vapi_c_gen.py --prefix $(VAPI_BINDIR) $<
$(VAPI_BINDIR)/fake.api.vapi.hpp: fake.api.json $(WS_ROOT)/src/vpp-api/vapi/vapi_cpp_gen.py | $(VAPI_BINDIR)
$(WS_ROOT)/src/vpp-api/vapi/vapi_cpp_gen.py --prefix $(VAPI_BINDIR) $<
$(VAPI_CBIN): $(CSRC) $(VAPI_BINDIR)/fake.api.vapi.h | $(VAPI_BINDIR)
$(CC) -o $@ $(CFLAGS) $(CSRC) $(VAPI_LIBS)
$(VAPI_CBIN).d: $(CSRC) $(VAPI_BINDIR)/fake.api.vapi.h
$(CC) -o $@ $(CFLAGS) -MM -MT '$(VAPI_CBIN)' $(CSRC) > $@
ifeq ($(filter rhel centos,$(OS_ID)),$(OS_ID) AND $(OS_VERSION_ID),7)
VAPI_CPPBIN=
else
CPPSRC = $(TEST_EXT_DIR)/vapi_cpp_test.cpp
$(VAPI_CPPBIN): $(CPPSRC) $(VAPI_BINDIR)/fake.api.vapi.hpp | $(VAPI_BINDIR)
$(CXX) -o $@ $(CPPFLAGS) $(CPPSRC) $(VAPI_LIBS)
$(VAPI_CPPBIN).d: $(CPPSRC) $(VAPI_BINDIR)/fake.api.vapi.hpp
$(CXX) -o $@ $(CPPFLAGS) -MM -MT '$(VAPI_CPPBIN)' $(CPPSRC) > $@
endif
.PHONY: test-apps
test-apps: $(VAPI_CBIN) $(VAPI_CPPBIN)
.PHONY: clean
clean:
@rm -rf $(VAPI_BINDIR)
ifneq ($(MAKECMDGOALS),clean)
-include $(VAPI_CBIN).d
ifneq ($(VAPI_CPPBIN),)
-include $(VAPI_CPPBIN).d
endif
endif

View File

@@ -20,11 +20,11 @@ class VAPITestCase(VppTestCase):
def test_vapi_c(self):
""" run C VAPI tests """
var = "TEST_BR"
built_root = os.getenv(var, None)
self.assertIsNotNone(built_root,
var = "VPP_BUILD_DIR"
build_dir = os.getenv(var, None)
self.assertIsNotNone(build_dir,
"Environment variable `%s' not set" % var)
executable = "%s/vapi_test/vapi_c_test" % built_root
executable = f"{build_dir}/vpp/bin/vapi_c_test"
worker = Worker([executable, "vapi client",
self.get_api_segment_prefix()], self.logger)
worker.start()
@@ -49,11 +49,11 @@ class VAPITestCase(VppTestCase):
def test_vapi_cpp(self):
""" run C++ VAPI tests """
var = "TEST_BR"
built_root = os.getenv(var, None)
self.assertIsNotNone(built_root,
var = "VPP_BUILD_DIR"
build_dir = os.getenv(var, None)
self.assertIsNotNone(build_dir,
"Environment variable `%s' not set" % var)
executable = "%s/vapi_test/vapi_cpp_test" % built_root
executable = f"{build_dir}/vpp/bin/vapi_cpp_test"
worker = Worker([executable, "vapi client",
self.get_api_segment_prefix()], self.logger)
worker.start()