#!/usr/bin/env bash if [ $(lsb_release -is) != Ubuntu ]; then echo "Host stack test framework is supported only on Ubuntu" exit 1 fi if [ -z $(which ab) ]; then echo "Host stack test framework requires apache2-utils to be installed" echo "It is recommended to run 'sudo make install-dep'" exit 1 fi if [ -z $(which wrk) ]; then echo "Host stack test framework requires wrk to be installed" echo "It is recommended to run 'sudo make install-dep'" exit 1 fi export VPP_WS=../.. if [ "$1" == "debug" ]; then VPP_BUILD_ROOT=${VPP_WS}/build-root/build-vpp_debug-native/vpp elif [ "$1" == "gcov" ]; then VPP_BUILD_ROOT=${VPP_WS}/build-root/build-vpp_gcov-native/vpp else VPP_BUILD_ROOT=${VPP_WS}/build-root/build-vpp-native/vpp fi echo "Taking build objects from ${VPP_BUILD_ROOT}" if [ -z "$UBUNTU_VERSION" ] ; then export UBUNTU_VERSION=$(lsb_release -rs) fi echo "Ubuntu version is set to ${UBUNTU_VERSION}" export HST_LDPRELOAD=${VPP_BUILD_ROOT}/lib/x86_64-linux-gnu/libvcl_ldpreload.so echo "HST_LDPRELOAD is set to ${HST_LDPRELOAD}" export PATH=${VPP_BUILD_ROOT}/bin:$PATH bin=vpp-data/bin lib=vpp-data/lib mkdir -p ${bin} ${lib} || true rm -rf vpp-data/bin/* || true rm -rf vpp-data/lib/* || true cp ${VPP_BUILD_ROOT}/bin/* ${bin} res+=$? cp -r ${VPP_BUILD_ROOT}/lib/x86_64-linux-gnu/* ${lib} res+=$? if [ $res -ne 0 ]; then echo "Failed to copy VPP files. Is VPP built? Try running 'make build' in VPP directory." exit 1 fi docker_build () { tag=$1 dockername=$2 docker build --build-arg UBUNTU_VERSION \ --build-arg http_proxy=$HTTP_PROXY \ --build-arg https_proxy=$HTTP_PROXY \ --build-arg HTTP_PROXY=$HTTP_PROXY \ --build-arg HTTPS_PROXY=$HTTP_PROXY \ -t $tag -f docker/Dockerfile.$dockername . } docker_build hs-test/vpp vpp docker_build hs-test/nginx-ldp nginx docker_build hs-test/nginx-server nginx-server docker_build hs-test/build build if [ "$HST_EXTENDED_TESTS" = true ] ; then docker_build hs-test/nginx-http3 nginx-http3 docker_build hs-test/curl curl fi # cleanup detached images images=$(docker images --filter "dangling=true" -q --no-trunc) if [ "$images" != "" ]; then docker rmi $images fi