2022-08-09 14:44:47 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
source vars
|
2022-12-19 20:35:27 +01:00
|
|
|
|
2023-01-31 10:34:18 +01:00
|
|
|
args=
|
|
|
|
single_test=0
|
|
|
|
persist_set=0
|
2023-02-27 16:52:57 +01:00
|
|
|
unconfigure_set=0
|
2023-02-28 18:59:15 +01:00
|
|
|
debug_set=0
|
2024-06-19 06:20:00 -04:00
|
|
|
debug_build=
|
2024-03-14 11:42:55 -04:00
|
|
|
ginkgo_args=
|
2023-01-31 10:34:18 +01:00
|
|
|
|
|
|
|
for i in "$@"
|
2022-12-19 20:35:27 +01:00
|
|
|
do
|
2023-01-31 10:34:18 +01:00
|
|
|
case "${i}" in
|
|
|
|
--persist=*)
|
|
|
|
persist="${i#*=}"
|
2024-06-14 14:59:38 -04:00
|
|
|
if [ "$persist" = "true" ]; then
|
2023-01-31 10:34:18 +01:00
|
|
|
args="$args -persist"
|
|
|
|
persist_set=1
|
|
|
|
fi
|
|
|
|
;;
|
2023-02-28 18:59:15 +01:00
|
|
|
--debug=*)
|
|
|
|
debug="${i#*=}"
|
2024-06-14 14:59:38 -04:00
|
|
|
if [ "$debug" = "true" ]; then
|
2023-02-28 18:59:15 +01:00
|
|
|
args="$args -debug"
|
|
|
|
debug_set=1
|
|
|
|
fi
|
|
|
|
;;
|
2024-06-19 06:20:00 -04:00
|
|
|
--debug_build=*)
|
|
|
|
debug_build="${i#*=}"
|
|
|
|
if [ "$debug_build" = "true" ]; then
|
|
|
|
args="$args -debug_build"
|
|
|
|
fi
|
|
|
|
;;
|
2023-01-31 10:34:18 +01:00
|
|
|
--verbose=*)
|
|
|
|
verbose="${i#*=}"
|
2024-06-14 14:59:38 -04:00
|
|
|
if [ "$verbose" = "true" ]; then
|
2023-01-31 10:34:18 +01:00
|
|
|
args="$args -verbose"
|
|
|
|
fi
|
|
|
|
;;
|
2023-02-27 16:52:57 +01:00
|
|
|
--unconfigure=*)
|
|
|
|
unconfigure="${i#*=}"
|
2024-06-14 14:59:38 -04:00
|
|
|
if [ "$unconfigure" = "true" ]; then
|
2023-02-27 16:52:57 +01:00
|
|
|
args="$args -unconfigure"
|
|
|
|
unconfigure_set=1
|
|
|
|
fi
|
|
|
|
;;
|
2023-04-28 10:29:47 +02:00
|
|
|
--cpus=*)
|
|
|
|
args="$args -cpus ${i#*=}"
|
|
|
|
;;
|
2023-09-05 15:36:28 +02:00
|
|
|
--vppsrc=*)
|
|
|
|
args="$args -vppsrc ${i#*=}"
|
|
|
|
;;
|
2023-01-31 10:34:18 +01:00
|
|
|
--test=*)
|
|
|
|
tc_name="${i#*=}"
|
2024-06-14 14:59:38 -04:00
|
|
|
if [ "$tc_name" != "all" ]; then
|
2023-01-31 10:34:18 +01:00
|
|
|
single_test=1
|
2024-03-14 11:42:55 -04:00
|
|
|
ginkgo_args="$ginkgo_args --focus $tc_name -vv"
|
|
|
|
args="$args -verbose"
|
|
|
|
else
|
|
|
|
ginkgo_args="$ginkgo_args -v"
|
2023-01-31 10:34:18 +01:00
|
|
|
fi
|
2024-03-14 11:42:55 -04:00
|
|
|
;;
|
|
|
|
--parallel=*)
|
|
|
|
ginkgo_args="$ginkgo_args -procs=${i#*=}"
|
2024-04-22 19:47:27 +02:00
|
|
|
;;
|
|
|
|
--repeat=*)
|
|
|
|
ginkgo_args="$ginkgo_args --repeat=${i#*=}"
|
|
|
|
;;
|
2024-06-17 08:51:27 +02:00
|
|
|
--cpu0=*)
|
|
|
|
cpu0="${i#*=}"
|
|
|
|
if [ "$cpu0" = "true" ]; then
|
|
|
|
args="$args -cpu0"
|
|
|
|
fi
|
|
|
|
;;
|
2023-01-31 10:34:18 +01:00
|
|
|
esac
|
2022-12-19 20:35:27 +01:00
|
|
|
done
|
|
|
|
|
2023-01-31 10:34:18 +01:00
|
|
|
if [ $single_test -eq 0 ] && [ $persist_set -eq 1 ]; then
|
2023-02-27 16:52:57 +01:00
|
|
|
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"
|
2023-01-31 10:34:18 +01:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2023-02-28 18:59:15 +01:00
|
|
|
if [ $single_test -eq 0 ] && [ $debug_set -eq 1 ]; then
|
2024-06-19 06:20:00 -04:00
|
|
|
echo "VPP debug flag is not supported while running all tests!"
|
2023-02-28 18:59:15 +01:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2024-05-06 06:55:34 -04:00
|
|
|
mkdir -p summary
|
2024-06-14 14:59:38 -04:00
|
|
|
# shellcheck disable=SC2086
|
2024-05-06 06:55:34 -04:00
|
|
|
sudo -E go run github.com/onsi/ginkgo/v2/ginkgo --no-color --trace --json-report=summary/report.json $ginkgo_args -- $args
|
2024-05-10 04:19:35 -04:00
|
|
|
|
2024-06-26 10:08:47 +02:00
|
|
|
jq -r '.[0] | .SpecReports[] | select((.State == "failed") or (.State == "timedout") or (.State == "panicked")) | select(.Failure != null) | "TestName: \(.LeafNodeText)\nSuite:\n\(.Failure.FailureNodeLocation.FileName)\nMessage:\n\(.Failure.Message)\n Full Stack Trace:\n\(.Failure.Location.FullStackTrace)\n"' summary/report.json > summary/failed-summary.log \
|
2024-06-14 14:59:38 -04:00
|
|
|
&& echo "Summary generated -> summary/failed-summary.log"
|