hs-test: support for multiple workers
[vpp.git] / extras / hs-test / test
index 0bccc87..db53d5a 100755 (executable)
@@ -1,4 +1,73 @@
 #!/usr/bin/env bash
 
 source vars
-sudo -E go test -buildvcs=false  -v $@
+
+args=
+single_test=0
+persist_set=0
+unconfigure_set=0
+debug_set=0
+
+for i in "$@"
+do
+case "${i}" in
+    --persist=*)
+        persist="${i#*=}"
+        if [ $persist = "true" ]; then
+            args="$args -persist"
+            persist_set=1
+        fi
+        ;;
+    --debug=*)
+        debug="${i#*=}"
+        if [ $debug = "true" ]; then
+            args="$args -debug"
+            debug_set=1
+        fi
+        ;;
+    --verbose=*)
+        verbose="${i#*=}"
+        if [ $verbose = "true" ]; then
+            args="$args -verbose"
+        fi
+        ;;
+    --unconfigure=*)
+        unconfigure="${i#*=}"
+        if [ $unconfigure = "true" ]; then
+            args="$args -unconfigure"
+            unconfigure_set=1
+        fi
+        ;;
+    --cpus=*)
+        args="$args -cpus ${i#*=}"
+        ;;
+    --test=*)
+        tc_name="${i#*=}"
+        if [ $tc_name != "all" ]; then
+            single_test=1
+            args="$args -run $tc_name"
+        fi
+esac
+done
+
+if [ $single_test -eq 0 ] && [ $persist_set -eq 1 ]; then
+    echo "persist flag is not supported while running all tests!"
+    exit 1
+fi
+
+if [ $unconfigure_set -eq 1 ] && [ $single_test -eq 0 ]; then
+    echo "a single test has to be specified when unconfigure is set"
+    exit 1
+fi
+
+if [ $persist_set -eq 1 ] && [ $unconfigure_set -eq 1 ]; then
+    echo "setting persist flag and unconfigure flag is not allowed"
+    exit 1
+fi
+
+if [ $single_test -eq 0 ] && [ $debug_set -eq 1 ]; then
+    echo "VPP debug flag is not supperted while running all tests!"
+    exit 1
+fi
+
+sudo -E go test -buildvcs=false -v $args