DAOS-19102 test: Stabilize NLT memcheck testing of Go binaries (#18454)#18552
DAOS-19102 test: Stabilize NLT memcheck testing of Go binaries (#18454)#18552mjmac wants to merge 1 commit into
Conversation
|
Ticket title is 'Make Go suppressions stable across toolchain versions' |
|
Test stage Build on EL 9 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18552/1/execution/node/313/log |
78b24e1 to
9a174a9
Compare
|
Test stage NLT completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-18552/2/testReport/ |
|
Test stage Functional on EL 9 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18552/2/execution/node/1218/log |
Go 1.25+ includes a new valgrind build tag which instruments the Go runtime in a way that valgrind can comprehend. Instead of fighting a constantly losing battle with valgrind, let's work with it and ditch the unstable suppressions that need to be updated for every release of the Go toolchain. This commit introduces scons and Jenkinsfile changes to enable this build mode for NLT, but keeps the -race build for normal non-release testing. Also pulls in a change made on master (DAOS-18797) to make debuggers/memcheck work better on non-release builds. Additionally: By default, NLT runs each test once. Add a --repeat N flag to allow for multiple iterations to really soak a change. Add a --failfast flag to allow the loop to be broken if any iteration fails; otherwise the loop will keep going until the requested number of loops has completed. New test pragmas: * NLT-repeat: N * NLT-repeat-failfast: true Signed-off-by: Michael MacDonald <github@macdonald.cx>
9a174a9 to
76964cc
Compare
|
Test stage NLT completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-18552/3/testReport/ |
Go 1.25+ includes a new valgrind build tag which instruments the
Go runtime in a way that valgrind can comprehend. Instead of
fighting a constantly losing battle with valgrind, let's work
with it and ditch the unstable suppressions that need to be updated
for every release of the Go toolchain.
This commit introduces scons and Jenkinsfile changes to enable this
build mode for NLT, but keeps the -race build for normal non-release
testing. Also pulls in a change made on master (DAOS-18797) to
make debuggers/memcheck work better on non-release builds.
Additionally:
By default, NLT runs each test once. Add a --repeat N flag to
allow for multiple iterations to really soak a change. Add a
--failfast flag to allow the loop to be broken if any iteration
fails; otherwise the loop will keep going until the requested
number of loops has completed.
New test pragmas:
Signed-off-by: Michael MacDonald github@macdonald.cx