blob: 3b4bc28e275d362b6ad82f7b02d0fb15401834ed [file] [log] [blame]
#!/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