aboutsummaryrefslogtreecommitdiffstats
path: root/test/scripts/run.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/scripts/run.sh')
-rwxr-xr-xtest/scripts/run.sh71
1 files changed, 71 insertions, 0 deletions
diff --git a/test/scripts/run.sh b/test/scripts/run.sh
new file mode 100755
index 00000000000..504edd677cc
--- /dev/null
+++ b/test/scripts/run.sh
@@ -0,0 +1,71 @@
+#!/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 $*