Files
vpp/test/scripts/run.sh
Klement Sekera b23ffd7ef2 tests: make tests less make dependent
Implement command line argument parsing instead of passing arguments via
environment variables. Add script for running tests without having to
invoke make. Deprecate running tests via make.

Type: improvement
Change-Id: I2e3054a61a2ae25d460e9be00be7d7705fbf943e
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-02-17 18:02:35 +00:00

72 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
ff="0"
items=
for i in "$@"
do
case $i in
--venv-dir=*)
venv_dir="${i#*=}"
if [ -d $venv_dir ]
then
venv_dir=$(cd $venv_dir; pwd)
else
echo "ERROR: '$venv_dir' is not a directory"
exit 1
fi
items="$items --venv-dir=\"$venv_dir\""
;;
--vpp-ws-dir=*)
ws_dir="${i#*=}"
if [ -d $ws_dir ]
then
ws_dir=$(cd $ws_dir; pwd)
else
echo "ERROR: '$ws_dir' is not a directory"
exit 1
fi
items="$items --vpp-ws-dir=\"$ws_dir\""
;;
--force-foreground)
ff="1"
items="$items \"$i\""
;;
--vpp-tag=*)
tag="${i#*=}"
items="$items \"$i\""
;;
--python-opts=*)
python_opts="${i#*=}"
;;
*)
# unknown option - skip
items="$items \"$i\""
;;
esac
done
extra_args=""
if [ -z "$ws_dir" ]
then
ws_dir=$(pwd)
echo "Argument --vpp-ws-dir not specified, defaulting to '$ws_dir'"
extra_args="$extra_args --vpp-ws-dir=$ws_dir"
fi
if [ -z "$venv_dir" ]
then
venv_dir="$ws_dir/test/venv"
echo "Argument --venv-path not specified, defaulting to '$venv_dir'"
extra_args="$extra_args --venv-dir=$venv_dir"
fi
if [ -z "$tag" ]
then
tag="vpp_debug"
echo "Argument --vpp-tag not specified, defaulting to '$tag'"
extra_args="$extra_args --vpp-tag=$tag"
fi
eval set -- $items
$ws_dir/test/scripts/setsid_wrapper.sh $ws_dir/test/scripts/run_in_venv_with_cleanup.sh $ff $venv_dir/bin/activate python3 $python_opts $ws_dir/test/run_tests.py $extra_args $*