Meta/Dothem: allow different kinds of tests run at the same time

Junio C Hamano committed Mar 4, 2026 at 14:52 UTC 5e058d042ba1c7206726b66f98faac5b8156a8dd
1 file changed +22 -13
Dothem
+22 -13
@@ -90,6 +90,9 @@ export GIT_TEST_CHAIN_LINT
90 GIT_PROVE_OPTS="${GIT_PROVE_OPTS:+$GIT_PROVE_OPTS }--state=slow,save"
91 export GIT_PROVE_OPTS
92
93 +TEST_CONTRIB_TOO=YesPlease
94 +export TEST_CONTRIB_TOO
95 +
96 test -f /bin/dash || with_dash=
97 if test -z "$BUILDBASE"
98 then
@@ -279,32 +282,38 @@ do
282 if test -n "$san"
283 then
284 section SANITIZE=address,undefined
282 - SANITIZE=address,undefined Meta/Make $M $jobs test &&
285 + SANITIZE=address,undefined Meta/Make $M $jobs $T test &&
286 + rm -f compat/mmap.o &&
287 Meta/Make >/dev/null distclean
284 - elif test "$breaking$with_leaks$with_sha256$dotest" = test
285 - then
286 - section test
287 - Meta/Make $M $noprove ${test+"$test"} $jobs $test_long \
288 - $memtrash \
289 - -- ${with_dash:+SHELL_PATH=/bin/dash} "$@" $dotest
290 - elif test -n "$with_leaks"
288 + fi &&
289 + if test -n "$with_leaks"
290 then
291 section leaks
292 SANITIZE=leak \
293 GIT_TEST_PASSING_SANITIZE_LEAK=true \
295 - Meta/Make -j16 $T CC=clang test &&
294 + Meta/Make $jobs $T CC=clang test &&
295 Meta/Make >/dev/null distclean
297 - elif test -n "$with_sha256"
296 + fi &&
297 + if test -n "$with_sha256"
298 then
299 section sha256
300 - GIT_TEST_DEFAULT_HASH=sha256 Meta/Make -j16 $T test
301 - elif test -n "$breaking"
300 + GIT_TEST_DEFAULT_HASH=sha256 Meta/Make $jobs $T test
301 + fi &&
302 + if test -n "$breaking"
303 then
304 section breaking
304 - Meta/Make -j16 WITH_BREAKING_CHANGES=YesPlease test &&
305 + Meta/Make $jobs WITH_BREAKING_CHANGES=YesPlease $T test &&
306 Meta/Make >/dev/null distclean
307 fi &&
308
309 + if test "$san$breaking$with_leaks$breaking$with_sha256$dotest" = test
310 + then
311 + section test
312 + Meta/Make $M $noprove ${test+"$test"} $jobs $test_long \
313 + $memtrash \
314 + -- ${with_dash:+SHELL_PATH=/bin/dash} "$@" $T $dotest
315 + fi &&
316 +
317 # docs
318 {
319 test -n "$skip_doc" ||