summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extras/hs-test/Makefile24
-rw-r--r--extras/hs-test/hs_test.sh13
-rwxr-xr-xextras/hs-test/script/compress.sh2
3 files changed, 24 insertions, 15 deletions
diff --git a/extras/hs-test/Makefile b/extras/hs-test/Makefile
index 83a42c84629..2a501580e53 100644
--- a/extras/hs-test/Makefile
+++ b/extras/hs-test/Makefile
@@ -119,30 +119,26 @@ build-vpp-gcov:
.PHONY: test
test: .deps.ok .build.ok
- @# '-' ignores the exit status, it is set in compress.sh
- @# necessary so gmake won't skip executing the bash script
- @-bash ./hs_test.sh --persist=$(PERSIST) --verbose=$(VERBOSE) \
+ @bash ./hs_test.sh --persist=$(PERSIST) --verbose=$(VERBOSE) \
--unconfigure=$(UNCONFIGURE) --debug=$(DEBUG) --test=$(TEST) --cpus=$(CPUS) \
- --vppsrc=$(VPPSRC) --parallel=$(PARALLEL) --repeat=$(REPEAT) --cpu0=$(CPU0)
- @bash ./script/compress.sh
+ --vppsrc=$(VPPSRC) --parallel=$(PARALLEL) --repeat=$(REPEAT) --cpu0=$(CPU0); \
+ ./script/compress.sh $$?
+
.PHONY: test-debug
test-debug: .deps.ok .build_debug.ok
- @# '-' ignores the exit status, it is set in compress.sh
- @# necessary so gmake won't skip executing the bash script
- @-bash ./hs_test.sh --persist=$(PERSIST) --verbose=$(VERBOSE) \
+ @bash ./hs_test.sh --persist=$(PERSIST) --verbose=$(VERBOSE) \
--unconfigure=$(UNCONFIGURE) --debug=$(DEBUG) --test=$(TEST) --cpus=$(CPUS) \
--vppsrc=$(VPPSRC) --parallel=$(PARALLEL) --repeat=$(REPEAT) --debug_build=true \
- --cpu0=$(CPU0)
- @bash ./script/compress.sh
+ --cpu0=$(CPU0); \
+ ./script/compress.sh $$?
.PHONY: test-cov
test-cov: .deps.ok .build.cov.ok
- @-bash ./hs_test.sh --persist=$(PERSIST) --verbose=$(VERBOSE) \
+ @bash ./hs_test.sh --persist=$(PERSIST) --verbose=$(VERBOSE) \
--unconfigure=$(UNCONFIGURE) --debug=$(DEBUG) --test=$(TEST-HS) --cpus=$(CPUS) \
- --vppsrc=$(VPPSRC) --cpu0=$(CPU0)
- @$(MAKE) -C ../.. test-cov-post HS_TEST=1
- @bash ./script/compress.sh
+ --vppsrc=$(VPPSRC) --cpu0=$(CPU0); \
+ ./script/compress.sh $$?
.PHONY: test-leak
test-leak: .deps.ok .build_debug.ok
diff --git a/extras/hs-test/hs_test.sh b/extras/hs-test/hs_test.sh
index c53c5a9de88..c72ef73301e 100644
--- a/extras/hs-test/hs_test.sh
+++ b/extras/hs-test/hs_test.sh
@@ -124,5 +124,16 @@ mkdir -p summary
# shellcheck disable=SC2086
sudo -E go run github.com/onsi/ginkgo/v2/ginkgo --json-report=summary/report.json $ginkgo_args -- $args
-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 \
+if [ $? != 0 ]; then
+ jq -r '.[0] | .SpecReports[] | select((.State == "failed") or (.State == "timedout") or (.State == "panicked")) | select(.Failure != null) |
+"TestName:
+ \(.LeafNodeText)
+Suite:
+ \(.Failure.FailureNodeLocation.FileName)
+Message:
+\(.Failure.Message)"
+ + (if .Failure.Message == "A spec timeout occurred" then "\n" else
+"\nFull Stack Trace:
+\(.Failure.Location.FullStackTrace)\n" end)' summary/report.json > summary/failed-summary.log \
&& echo "Summary generated -> summary/failed-summary.log"
+fi
diff --git a/extras/hs-test/script/compress.sh b/extras/hs-test/script/compress.sh
index 654774842a3..09db9b6720d 100755
--- a/extras/hs-test/script/compress.sh
+++ b/extras/hs-test/script/compress.sh
@@ -32,4 +32,6 @@ then
echo "*************************** SUMMARY ***************************"
cat "${HS_ROOT}/summary/failed-summary.log"
exit 1
+else
+ exit $1
fi