From 3320f7c7224e051b4a30a74e0a683159ed8b9dea Mon Sep 17 00:00:00 2001 From: YohanPipereau Date: Fri, 5 Apr 2019 20:14:09 +0200 Subject: Modify build system -Clean Makefile -Fix errors in scvpp length copies -Add testing when building scvpp Change-Id: I5a331386a1812b147dfec26310dfbd3aed327dae Signed-off-by: YohanPipereau --- Makefile | 310 ++++++++++------------ src/cmake/Packager.cmake | 4 +- src/plugins/openconfig/openconfig_local_routing.c | 2 +- src/scvpp/src/interface.c | 4 +- src/scvpp/tests/CMakeLists.txt | 6 +- 5 files changed, 151 insertions(+), 175 deletions(-) diff --git a/Makefile b/Makefile index f2ee6ee..f2f6747 100644 --- a/Makefile +++ b/Makefile @@ -11,21 +11,30 @@ # See the License for the specific language governing permissions and # limitations under the License. +# Main Dependencies: +# netopeer2 -> libyang +# -> libnetconf2 -> libyang +# -> libssh (>=0.6.4) +# +# gnmi -> libsysrepo +# -> protobuf (>=3) +# -> libjsoncpp +# +# sysrepo -> libyang +# -> libredblack or libavl +# -> libev +# -> protobuf-c + export WS_ROOT=$(CURDIR) export BR=$(WS_ROOT)/build-root -CCACHE_DIR?=$(BR)/.ccache -GDB?=gdb PLATFORM?=sweetcomb -MACHINE=$(shell uname -m) -SUDO?=sudo -# -# OS Detection -# +############## +#OS Detection# +############## ifneq ($(shell uname),Darwin) OS_ID = $(shell grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g') OS_VERSION_ID= $(shell grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g') -CENTOS_GCC = $(shell gcc --version|grep gcc|cut -f3 -d' '|cut -f1 -d'.') endif ifeq ($(filter ubuntu debian,$(OS_ID)),$(OS_ID)) @@ -36,44 +45,60 @@ PKG=rpm cmake=cmake3 endif -# +libganglia1-dev if building the gmond plugin - -DEB_DEPENDS = curl build-essential autoconf automake ccache git -DEB_DEPENDS += bison flex libpcre3-dev libev-dev libavl-dev libprotobuf-c-dev protobuf-c-compiler libcmocka-dev -DEB_DEPENDS += cmake ninja-build python-pkgconfig python-dev libssl-dev indent wget zlib1g-dev - -DEB_GNMI_DEPENDS = libpugixml-dev libjsoncpp-dev libtool pkg-config golang libc-ares-dev libc-ares2 - -RPM_DEPENDS = curl autoconf automake ccache bison flex pcre-devel libev-devel protobuf-c-devel protobuf-c-compiler libcmocka-devel -RPM_DEPENDS += cmake ninja-build python-pkgconfig python-devel openssl-devel graphviz wget gcc gcc-c++ indent git cmake3 -RPM_GNMI_DEPENDS = pugixml jsoncpp c-ares c-ares-devel libtool pugixml-devel jsoncpp-devel devtoolset-8-gcc-c++ - -ifeq ($(findstring y,$(UNATTENDED)),y) -CONFIRM=-y -FORCE=--force-yes -endif - -TARGETS = sweetcomb - -.PHONY: help install-dep install-dep-extra install-vpp checkstyle fixstyle build-plugins build-scvpp build-package - -define banner - @echo "========================================================================" - @echo " $(1)" - @echo "========================================================================" - @echo " " -endef +##### +#DEB# +##### +#Dependencies to build +BUILD_DEB = curl build-essential autoconf automake ccache git cmake wget coreutils +#Dependencies for netopeer2 +NETOPEER2_DEB = libssl-dev +#Dependencies for checkstyle +CHECKSTYLE_DEB = indent +#Dependencies for scvpp +SCVPP_DEB = libcmocka-dev +#Dependencies for sysrepo (swig required for sysrepo python, lua, java) +SYSREPO_DEB = libev-dev libavl-dev bison flex libpcre3-dev libprotobuf-c-dev protobuf-c-compiler +#Dependencies of libssh +LIBSSH_DEB = zlib1g-dev +#Sum dependencies +DEB_DEPENDS = ${BUILD_DEB} ${NETOPEER2_DEB} ${CHECKSTYLE_DEB} ${SCVPP_DEB} \ + ${SYSREPO_DEB} ${LIBSSH-DEV} + +#Dependencies for grpc +DEB_GNMI_DEPENDS = libpugixml-dev libjsoncpp-dev libtool pkg-config + +##### +#RPM# +##### +#Dependencies to build +BUILD_RPM = curl autoconf automake ccache cmake3 wget gcc gcc-c++ git +#Dependencies for netopeer2 +NETOPEER2_RPM = openssl-devel +#Dependencies for checkstyle +CHECKSTYLE_RPM = indent +#Dependencies for scvpp +SCVPP_RPM = libcmocka-devel +#Dependencies for sysrepo +SYSREPO_RPM = libev-devel bison flex pcre-devel protobuf-c-devel protobuf-c-compiler + +RPM_DEPENDS = ${BUILD_RPM} ${NETOPEER2_RPM} ${CHECKSTYLE_RPM} ${SCVPP_RPM} \ + ${SYSREPO_RPM} + +#Dependencies for grpc +RPM_GNMI_DEPENDS = pugixml jsoncpp libtool pugixml-devel jsoncpp-devel ${GRPC_RPM} + +.PHONY: help install-dep install-dep-extra install-vpp install-models uninstall-models \ + install-dep-gnmi-extra build-scvpp build-plugins build-gnmi build-package docker \ + docker_test clean distclean _clean_dl _libssh _libyang _libnetconf2 _sysrepo _netopeer2 help: @echo "Make Targets:" @echo " install-dep - install software dependencies" - @echo " install-dep-extra - install software extra dependencips from source code" + @echo " install-dep-extra - install software extra dependencies from source code" @echo " install-vpp - install released vpp" @echo " install-models - install YANG models" @echo " uninstall-models - uninstall YANG models" @echo " install-dep-gnmi-extra - install software extra dependencips from source code for gNMI" - @echo " checkstyle - check coding style" - @echo " fixstyle - fix coding style" @echo " build-scvpp - build scvpp" @echo " build-plugins - build plugins" @echo " build-gnmi - build gNMIServer" @@ -82,195 +107,142 @@ help: @echo " docker_test - run test in docker enviroment" @echo " clean - clean all build" @echo " distclean - remove all build directory" -$(BR)/.deps.ok: -ifeq ($(findstring y,$(UNATTENDED)),y) - make install-dep -endif -ifeq ($(filter ubuntu debian,$(OS_ID)),$(OS_ID)) - @MISSING=$$(apt-get install -y -qq -s $(DEB_DEPENDS) | grep "^Inst ") ; \ - if [ -n "$$MISSING" ] ; then \ - echo "\nPlease install missing packages: \n$$MISSING\n" ; \ - echo "by executing \"make install-dep\"\n" ; \ - echo "please add the full offical ubuntu source\n" ; \ - exit 1 ; \ - fi ; \ - exit 0 -endif - @touch $@ install-dep: ifeq ($(filter ubuntu debian,$(OS_ID)),$(OS_ID)) ifeq ($(OS_VERSION_ID),14.04) - @sudo -E apt-get $(CONFIRM) $(FORCE) install software-properties-common - @sudo -E add-apt-repository ppa:openjdk-r/ppa $(CONFIRM) + @sudo -E apt-get -y --force-yes install software-properties-common + @sudo -E add-apt-repository ppa:openjdk-r/ppa -y endif @sudo -E apt-get update - @sudo -E apt-get $(APT_ARGS) $(CONFIRM) $(FORCE) install $(DEB_DEPENDS) + @sudo -E apt-get $(APT_ARGS) -y --force-yes install $(DEB_DEPENDS) else ifeq ($(OS_ID),centos) - @sudo -E yum install $(CONFIRM) $(RPM_DEPENDS) epel-release centos-release-scl devtoolset-7 + @sudo -E yum install -y $(RPM_DEPENDS) epel-release centos-release-scl devtoolset-7 @sudo -E yum remove -y libavl libavl-devel @sudo -E yum install -y http://ftp.nohats.ca/libavl/libavl-0.3.5-1.fc17.x86_64.rpm http://ftp.nohats.ca/libavl/libavl-devel-0.3.5-1.fc17.x86_64.rpm else $(error "This option currently works only on Ubuntu, Debian, Centos or openSUSE systems") endif -define make - @make -C $(BR) PLATFORM=$(PLATFORM) TAG=$(1) $(2) -endef - -$(BR)/scripts/.version: -ifneq ("$(wildcard /etc/redhat-release)","") - $(shell $(BR)/scripts/version rpm-string > $(BR)/scripts/.version) +#Check if libssh already installed in appropriate version +_libssh: +ifeq ( $(shell pkg-config libssh --atleast-version=0.6.4 ; echo $$?),0 ) + echo "libssh already installed in correct version" else - $(shell $(BR)/scripts/version > $(BR)/scripts/.version) -endif - -# Main Dependencies: -# netopeer2 -> libyang -# -> libnetconf2 -> libyang -# -> libssh -# sysrepo -> libyang -# -> libredblack or libavl -# -> libev -# -> protobuf -# -> protobuf-c - -install-dep-extra: - @rm -rf $(BR)/downloads @mkdir -p $(BR)/downloads/&&cd $(BR)/downloads/\ - \ &&wget https://git.libssh.org/projects/libssh.git/snapshot/libssh-0.7.7.tar.gz\ &&tar xvf libssh-0.7.7.tar.gz && cd libssh-0.7.7 && mkdir build && cd build\ &&cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr ..\ - &&make&&sudo make install && sudo ldconfig&&cd ../../\ - \ + &&make -j$(nproc) &&sudo make install && sudo ldconfig&&cd ../../ +endif + +_libyang: + @mkdir -p $(BR)/downloads/&&cd $(BR)/downloads/\ &&wget https://github.com/CESNET/libyang/archive/v0.16-r3.tar.gz\ &&tar xvf v0.16-r3.tar.gz && cd libyang-0.16-r3 && mkdir -p build&& cd build\ - &&cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX:PATH=/usr ..\ - &&make &&make install&&cd ../../&& mv v0.16-r3.tar.gz libyang-0.16-r3.tar.gz\ - \ - &&wget https://github.com/swig/swig/archive/rel-3.0.12.tar.gz\ - &&tar xvf rel-3.0.12.tar.gz && cd swig-rel-3.0.12\ - &&./autogen.sh&&./configure --prefix=/usr --without-clisp --without-maximum-compile-warnings\ - &&make&&sudo make install && sudo ldconfig&&cd ../&& mv rel-3.0.12.tar.gz swig-3.0.12.tar.gz\ - \ + &&cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DGEN_LANGUAGE_BINDINGS=OFF -DGEN_CPP_BINDINGS=ON \ + -DGEN_PYTHON_BINDINGS=OFF -DBUILD_EXAMPLES=OFF \ + -DENABLE_BUILD_TESTS=OFF .. \ + &&make -j$(nproc) &&make install&&cd ../../ \ + && mv v0.16-r3.tar.gz libyang-0.16-r3.tar.gz + +_libnetconf2: + @mkdir -p $(BR)/downloads/&&cd $(BR)/downloads/\ &&git clone https://github.com/CESNET/libnetconf2.git&&cd libnetconf2\ &&git checkout 7e5f7b05f10cb32a546c42355481c7d87e0409b8&& mkdir -p build&& cd build\ - &&cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX:PATH=/usr ..\ - &&make&&make install&&ldconfig\ + &&cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_TESTS=OFF\ + -DCMAKE_INSTALL_PREFIX:PATH=/usr ..\ + &&make -j $(nproc) &&make install&&ldconfig\ &&cd ../../\ - \ + +_sysrepo: + @mkdir -p $(BR)/downloads/&&cd $(BR)/downloads/\ &&wget https://github.com/sysrepo/sysrepo/archive/v0.7.7.tar.gz\ &&tar xvf v0.7.7.tar.gz && cd sysrepo-0.7.7 && mkdir -p build && cd build\ - &&cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -DGEN_PYTHON_VERSION=2 ..\ - &&make&&make install&&cd ../../&& mv v0.7.7.tar.gz sysrepo-0.7.7.tar.gz\ - \ - \ + &&cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DGEN_LANGUAGE_BINDINGS=OFF -DGEN_CPP_BINDINGS=ON -DGEN_LUA_BINDINGS=OFF \ + -DGEN_PYTHON_BINDINGS=OFF -DGEN_JAVA_BINDINGS=OFF -DBUILD_EXAMPLES=OFF \ + -DENABLE_TESTS=OFF ..\ + &&make -j$(nproc) &&make install&&cd ../../&& mv v0.7.7.tar.gz sysrepo-0.7.7.tar.gz + +_netopeer2: + @mkdir -p $(BR)/downloads/&&cd $(BR)/downloads/\ &&wget https://github.com/CESNET/Netopeer2/archive/v0.7-r1.tar.gz\ &&tar xvf v0.7-r1.tar.gz\ - \ + && echo "Netopeer2:keystored" \ && cd Netopeer2-0.7-r1/keystored && mkdir -p build && cd build\ &&cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr ..\ - &&make&&make install && sudo ldconfig\ - \ + &&make -j$(nproc) && make install && sudo ldconfig\ + && echo "Netopeer2:server" \ &&cd ../../server/ && mkdir -p build && cd build\ - &&cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX:PATH=/usr ..\ - &&make&& make install && ldconfig\ - \ + &&cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_TESTS=OFF\ + -DCMAKE_INSTALL_PREFIX:PATH=/usr ..\ + &&make -j$(nproc) && make install && ldconfig\ + && echo "Netopeer2:cli" \ &&cd ../../cli && mkdir -p build && cd build\ &&cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr ..\ - &&make&&make install && sudo ldconfig\ + &&make -j$(nproc) && make install && sudo ldconfig\ &&cd ../../../ && mv v0.7-r1.tar.gz Netopeer2-0.7-r1.tar.gz\ - \ - &&cd ../ && rm -rf $(BR)/downloads -install-dep-gnmi-extra: +_clean_dl: @rm -rf $(BR)/downloads - @mkdir -p $(BR)/downloads/ -ifeq ($(filter ubuntu debian,$(OS_ID)),$(OS_ID)) - @sudo -E apt-get update - @sudo -E apt-get $(APT_ARGS) $(CONFIRM) $(FORCE) install $(DEB_GNMI_DEPENDS) - @sudo apt-get install -y software-properties-common - @sudo add-apt-repository ppa:ubuntu-toolchain-r/test - @sudo apt update - @sudo apt install g++-7 -y - @sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 \ - --slave /usr/bin/g++ g++ /usr/bin/g++-7 - @sudo update-alternatives --config gcc +install-dep-extra: _clean_dl _libssh _libyang _libnetconf2 _sysrepo _netopeer2 + @cd ../ && rm -rf $(BR)/downloads + +#Protobuf must not be compiled with multiple core, it requires too much memory +#gRPC can be compiled with cmake or autotools. autotools has been choosen +#if cmake is choosen use SSL, ZLIB distribution package and compile protobuf separately +install-dep-gnmi-extra: +ifeq ($(filter ubuntu debian,$(OS_ID)),$(OS_ID)) + @sudo -E apt-get $(APT_ARGS) -y --force-yes install $(DEB_GNMI_DEPENDS) else ifeq ($(OS_ID),centos) - @sudo -E yum install $(CONFIRM) $(RPM_GNMI_DEPENDS) + @sudo -E yum install -y $(RPM_GNMI_DEPENDS) else $(error "This option currently works only on Ubuntu, Debian, Centos or openSUSE systems") endif - - @cd $(BR)/downloads/\ - &&wget https://github.com/Kitware/CMake/releases/download/v3.14.0-rc2/cmake-3.14.0-rc2.tar.gz \ - &&tar xvf cmake-3.14.0-rc2.tar.gz &&cd cmake-3.14.0-rc2\ - &&./configure &&make &&make install\ - \ - &&cd $(BR)/downloads/\ - &&wget https://github.com/c-ares/c-ares/releases/download/cares-1_15_0/c-ares-1.15.0.tar.gz\ - &&tar xvf c-ares-1.15.0.tar.gz\ - &&mkdir -p c-ares-1.15.0/build && cd c-ares-1.15.0/build\ - &&cmake -DCMAKE_BUILD_TYPE=Release ../ &&make install\ - \ - &&cd $(BR)/downloads/\ - &&wget https://github.com/protocolbuffers/protobuf/archive/v3.7.0rc2.tar.gz\ - &&tar xvf v3.7.0rc2.tar.gz\ - &&cd protobuf-3.7.0rc2 &&./autogen.sh &&./configure --prefix=/usr\ - &&make &&make install &&ldconfig\ - \ - &&cd $(BR)/downloads/\ - &&wget https://github.com/grpc/grpc/archive/v1.18.0.tar.gz\ - &&tar xvf v1.18.0.tar.gz &&cd grpc-1.18.0 &&mkdir -p build && cd build\ - &&cmake -DgRPC_INSTALL:BOOL=ON -DgRPC_BUILD_TESTS:BOOL=OFF \ - -DgRPC_ZLIB_PROVIDER:STRING=package -DgRPC_CARES_PROVIDER:STRING=package \ - -DgRPC_SSL_PROVIDER:STRING=package -DgRPC_PROTOBUF_PROVIDER=package \ - -DCMAKE_BUILD_TYPE=Release ../\ - &&make ../ &&make install + @rm -rf $(BR)/downloads + @mkdir -p $(BR)/downloads/&&cd $(BR)/downloads/\ + && git clone --depth=1 -b v1.16.0 https://github.com/grpc/grpc \ + && cd grpc && git submodule update --init \ + && make && make install \ + && cd third_party/protobuf \ + && ./autogen.sh && ./configure && make install \ + &&cd ../../.. && rm -rf $(BR)/downloads install-vpp: @echo "please install vpp as vpp's guide from source if failed" ifeq ($(PKG),deb) # @curl -s https://packagecloud.io/install/repositories/fdio/release/script.deb.sh | sudo bash - @sudo -E apt-get $(CONFIRM) $(FORCE) install vpp libvppinfra* vpp-plugin-* vpp-dev + @sudo -E apt-get -y --force-yes install vpp libvppinfra* vpp-plugin-* vpp-dev else ifeq ($(PKG),rpm) # @curl -s https://packagecloud.io/install/repositories/fdio/release/script.rpm.sh | sudo bash ifeq ($(OS_ID),centos) - @sudo yum $(CONFIRM) install vpp vpp-lib vpp-plugin* vpp-devel + @sudo yum -y install vpp vpp-lib vpp-plugin* vpp-devel endif endif -checkstyle: - @build-root/scripts/checkstyle.sh - -fixstyle: - @build-root/scripts/checkstyle.sh --fix - build-scvpp: - @mkdir -p $(BR)/build-scvpp/;cd $(BR)/build-scvpp;cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/usr $(WS_ROOT)/src/scvpp/;make install; + @mkdir -p $(BR)/build-scvpp/; cd $(BR)/build-scvpp; \ + cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/usr $(WS_ROOT)/src/scvpp/;\ + make install ; make test build-plugins: - @mkdir -p $(BR)/build-plugins/;cd $(BR)/build-plugins/;cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/usr $(WS_ROOT)/src/plugins/;make install; - -docker: - @build-root/scripts/docker.sh - -docker_test: - @test/run_test.sh + @mkdir -p $(BR)/build-plugins/; cd $(BR)/build-plugins/; \ + cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/usr $(WS_ROOT)/src/plugins/; \ + make install build-gnmi: -ifeq ($(OS_ID),centos) - @source /opt/rh/devtoolset-8/enable \ - &&mkdir -p $(BR)/build-gnmi/;cd $(BR)/build-gnmi/;cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr $(WS_ROOT)/src/gnmi/;make; make install; -else - @mkdir -p $(BR)/build-gnmi/;cd $(BR)/build-gnmi/;cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr $(WS_ROOT)/src/gnmi/;make; make install; -endif + @mkdir -p $(BR)/build-gnmi/; cd $(BR)/build-gnmi/; \ + cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=/usr $(WS_ROOT)/src/gnmi/;make; \ + make install; build-package: - @mkdir -p $(BR)/build-scvpp/;cd $(BR)/build-scvpp;cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr $(WS_ROOT)/src/scvpp/;make install; - @mkdir -p $(BR)/build-package/;cd $(BR)/build-package/;$(cmake) $(WS_ROOT)/src/;make package;rm -rf $(BR)/build-package/_CPack_Packages; + @mkdir -p $(BR)/build-package/; cd $(BR)/build-package/;\ + $(cmake) -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DENABLE_TESTS=OFF $(WS_ROOT)/src/;make package;\ + rm -rf $(BR)/build-package/_CPack_Packages; install-models: @cd src/plugins/yang/ietf \ diff --git a/src/cmake/Packager.cmake b/src/cmake/Packager.cmake index 4305652..fddb382 100644 --- a/src/cmake/Packager.cmake +++ b/src/cmake/Packager.cmake @@ -33,7 +33,7 @@ macro(make_packages) set(OS_${_name} ${_value}) endforeach() - # extract version from git + #extract version from git execute_process( COMMAND git describe --long --match v* WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} @@ -51,6 +51,8 @@ macro(make_packages) list(GET VER 1 commit_num) list(GET VER 2 commit_name) + message("${tag}") + if (NOT DEFINED ENV{BUILD_NUMBER}) set(bld "b1") else() diff --git a/src/plugins/openconfig/openconfig_local_routing.c b/src/plugins/openconfig/openconfig_local_routing.c index 5d18b52..6a3b5bd 100644 --- a/src/plugins/openconfig/openconfig_local_routing.c +++ b/src/plugins/openconfig/openconfig_local_routing.c @@ -381,7 +381,7 @@ oc_next_hop_state_cb(const char *xpath, sr_val_t **values, size_t *values_cnt, VPP_IP4_PREFIX_STRING_LEN, &state); rc |= get_xpath_key(index, (char*)xpath, "next-hop", "index", - VPP_IP4_PREFIX_STRING_LEN, &state); + HOP_INDEX_SIZE, &state); if (rc != 0) return SR_ERR_INVAL_ARG; diff --git a/src/scvpp/src/interface.c b/src/scvpp/src/interface.c index 53cea1c..8f3b30b 100644 --- a/src/scvpp/src/interface.c +++ b/src/scvpp/src/interface.c @@ -20,6 +20,8 @@ #include #include +#define IFACE_SUBSTR 49 + // Use VAPI macros to define symbols DEFINE_VAPI_MSG_IDS_INTERFACE_API_JSON @@ -53,7 +55,7 @@ bin_api_sw_interface_dump(vapi_payload_sw_interface_details *details, /* Dump a specific interfaces */ mp->payload.name_filter_valid = true; - strncpy((char *)mp->payload.name_filter, iface_name, VPP_INTFC_NAME_LEN); + strncpy((char *)mp->payload.name_filter, iface_name, IFACE_SUBSTR); VAPI_CALL(vapi_sw_interface_dump(g_vapi_ctx, mp, sw_interface_dump_cb, details)); diff --git a/src/scvpp/tests/CMakeLists.txt b/src/scvpp/tests/CMakeLists.txt index 2b6de4a..19b7f7b 100644 --- a/src/scvpp/tests/CMakeLists.txt +++ b/src/scvpp/tests/CMakeLists.txt @@ -29,12 +29,12 @@ set(TEST_SRC add_executable(scvpp_test ${TEST_SRC}) target_link_libraries(scvpp_test ${CMOCKA_LIBRARIES} scvpp_a) target_include_directories(scvpp_test PRIVATE ../inc) -add_test(scvpp_test scvpp_test) +add_test(scvpp_test ./scvpp_test) if(valgrind_FOUND) - add_test(${TEST_NAME}_valgrind valgrind + add_test(scvpp_valgrind valgrind --error-exitcode=1 --read-var-info=yes --leak-check=full --show-leak-kinds=all - ./${TEST_NAME} + ./scvpp_test ) endif(valgrind_FOUND) -- cgit 1.2.3-korg