hs-test: fix incorrect exit status 22/41422/5
authorAdrian Villin <[email protected]>
Thu, 22 Aug 2024 08:35:19 +0000 (10:35 +0200)
committerDave Wallace <[email protected]>
Thu, 22 Aug 2024 11:53:13 +0000 (11:53 +0000)
- exit status was incorrect when tests didn't compile
- better summary formatting
- removed "full stack trace: null" from summary when a test times out

Type: test

Change-Id: Idd6b6bf3429fc8b704dd2345d257e9bdce1b82b7
Signed-off-by: Adrian Villin <[email protected]>
extras/hs-test/Makefile
extras/hs-test/hs_test.sh
extras/hs-test/script/compress.sh

index 83a42c8..2a50158 100644 (file)
@@ -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
index c53c5a9..c72ef73 100644 (file)
@@ -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
index 6547748..09db9b6 100755 (executable)
@@ -32,4 +32,6 @@ then
     echo "*************************** SUMMARY ***************************"
     cat "${HS_ROOT}/summary/failed-summary.log"
     exit 1
+else
+    exit $1
 fi