hs-test: fix incorrect exit status

- 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 <avillin@cisco.com>
This commit is contained in:
Adrian Villin
2024-08-22 10:35:19 +02:00
committed by Dave Wallace
parent 56f5bd9985
commit 399d44074b
3 changed files with 24 additions and 15 deletions

View 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

View 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

View File

@ -32,4 +32,6 @@ then
echo "*************************** SUMMARY ***************************"
cat "${HS_ROOT}/summary/failed-summary.log"
exit 1
else
exit $1
fi