vpp/test/scripts/run.sh
Tom Jones c3b416c492 build: Explicitly use bash for shell scripts
VPP requires bash for all shell scripts. Align shebang lines in build
and test scripts to look up the location of bash rather than hard coding
'/bin/bash'.

Look up the location of bash for makefiles.

Type: improvement
Change-Id: I23b705d81d60389fa8af61c680cf0abd74f0ea24
Signed-off-by: Tom Jones <thj@freebsd.org>
2024-01-19 12:30:01 +00:00

72 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env 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/build-root/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 $*