aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Villin <avillin@cisco.com>2024-10-09 11:03:35 +0200
committerAdrian Villin <avillin@cisco.com>2024-10-09 11:03:35 +0200
commitf151640bb1b6c402c95353ab147a7c8a57ba9ee0 (patch)
treeb60cf921d9cc001835c400b55c5f2482501e0072
parent96a56244a5df7eff60252890f7c4bb6ce8fee19a (diff)
hs-test: support running multiple specific tests
- make test TEST=[test1],[test2] runs those two tests in random order Type: test Change-Id: I1a1af7c99ef7867ca94cec4175605f428dcd58fd Signed-off-by: Adrian Villin <avillin@cisco.com>
-rw-r--r--extras/hs-test/README.rst2
-rw-r--r--extras/hs-test/hs_test.sh27
2 files changed, 16 insertions, 13 deletions
diff --git a/extras/hs-test/README.rst b/extras/hs-test/README.rst
index 6a4cea187c4..159f67908b0 100644
--- a/extras/hs-test/README.rst
+++ b/extras/hs-test/README.rst
@@ -27,7 +27,7 @@ Anatomy of a test case
**Action flow when running a test case**:
#. It starts with running ``make test``. Optional arguments are VERBOSE, PERSIST (topology configuration isn't cleaned up after test run, use ``make cleanup-hst`` to clean up),
- TEST=<test-name> to run a specific test and PARALLEL=[n-cpus].
+ TEST=<test-name> to run a specific test and PARALLEL=[n-cpus]. If you want to run multiple specific tests, separate their names with a comma.
#. ``make list-tests`` (or ``make help``) shows all tests.
#. ``Ginkgo`` looks for a spec suite in the current directory and then compiles it to a .test binary.
#. The Ginkgo test framework runs each function that was registered manually using ``Register[SuiteName]Test()``. Each of these functions correspond to a suite.
diff --git a/extras/hs-test/hs_test.sh b/extras/hs-test/hs_test.sh
index 85c0dd72705..b935f5d876b 100644
--- a/extras/hs-test/hs_test.sh
+++ b/extras/hs-test/hs_test.sh
@@ -3,14 +3,14 @@
source vars
args=
-single_test=0
+focused_test=0
persist_set=0
unconfigure_set=0
debug_set=0
leak_check_set=0
debug_build=
ginkgo_args=
-tc_name=
+tc_names=()
for i in "$@"
do
@@ -55,13 +55,12 @@ case "${i}" in
args="$args -vppsrc ${i#*=}"
;;
--test=*)
- tc_name="${i#*=}"
- if [ "$tc_name" != "all" ]; then
- single_test=1
- ginkgo_args="$ginkgo_args --focus $tc_name -vv"
+ tc_list="${i#*=}"
+ ginkgo_args="$ginkgo_args -v"
+ if [ "$tc_list" != "all" ]; then
+ focused_test=1
+ IFS=',' read -r -a tc_names <<< "$tc_list"
args="$args -verbose"
- else
- ginkgo_args="$ginkgo_args -v"
fi
;;
--parallel=*)
@@ -86,12 +85,16 @@ case "${i}" in
esac
done
-if [ $single_test -eq 0 ] && [ $persist_set -eq 1 ]; then
+for name in "${tc_names[@]}"; do
+ ginkgo_args="$ginkgo_args --focus $name"
+done
+
+if [ $focused_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
+if [ $unconfigure_set -eq 1 ] && [ $focused_test -eq 0 ]; then
echo "a single test has to be specified when unconfigure is set"
exit 1
fi
@@ -101,13 +104,13 @@ if [ $persist_set -eq 1 ] && [ $unconfigure_set -eq 1 ]; then
exit 1
fi
-if [ $single_test -eq 0 ] && [ $debug_set -eq 1 ]; then
+if [ $focused_test -eq 0 ] && [ $debug_set -eq 1 ]; then
echo "VPP debug flag is not supported while running all tests!"
exit 1
fi
if [ $leak_check_set -eq 1 ]; then
- if [ $single_test -eq 0 ]; then
+ if [ $focused_test -eq 0 ]; then
echo "a single test has to be specified when leak_check is set"
exit 1
fi