
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>
72 lines
1.4 KiB
Bash
Executable File
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 $*
|