**Prerequisites**:
* Install hs-test dependencies with ``make install-deps``
-* Tests use *hs-test*'s own docker image, so building it before starting tests is a prerequisite. Run ``make build[-debug]`` to do so
-* Docker has to be installed and Go has to be in path of both the running user and root
+* `Install Go <https://go.dev/doc/install>`_, it has to be in path of both the running user (follow instructions on Go installation page) and root (run ``sudo visudo`` and edit ``secure_path`` line, run ``sudo go version`` to verify)
* Root privileges are required to run tests as it uses Linux ``ip`` command for configuring topology
+* Tests use *hs-test*'s own docker image, they are rebuild automatically when needed, you can run ``make build[-debug]`` to do so or use ``FORCE_BUILD=true`` make parameter
**Action flow when running a test case**:
# get current state hash and ubuntu version
current_state_hash=$(git status --porcelain | grep -vE '(/\.|/10|\.go$|\.sum$|\.mod$|\.txt$|\.test$)' | sha1sum | awk '{print $1}')
-current_state_hash=$current_state_hash$UBUNTU_VERSION
+current_state_hash=$current_state_hash$UBUNTU_VERSION$1
if [ -f "$LAST_STATE_FILE" ]; then
last_state_hash=$(cat "$LAST_STATE_FILE")
rm -rf vpp-data/bin/* || true
rm -rf vpp-data/lib/* || true
+declare -i res=0
cp ${VPP_BUILD_ROOT}/bin/* ${bin}
res+=$?
cp -r ${VPP_BUILD_ROOT}/lib/"${OS_ARCH}"-linux-gnu/* ${lib}
res+=$?
-if [ $res -ne 0 ]; then
+if [ "$res" -ne 0 ]; then
echo "Failed to copy VPP files. Is VPP built? Try running 'make build' in VPP directory."
exit 1
fi