git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/3] Enable parallel tests

From
René Scharfe <rene.scharfe@lsrfire.ath.cx>
Date
Aug 8, 2008, 07:44 UTC
Message-ID
<489BF95F.1070000@lsrfire.ath.cx>
In-Reply-To
<alpine.DEB.1.00.0808080754230.9611@pacific.mpi-cbg.de.mpi-cbg.de>
Johannes Schindelin schrieb:
Show 5 quoted lines
> On multiprocessor machines, or with I/O heavy tests (that leave the
> CPU waiting a lot), it makes sense to parallelize the tests.
> 
> However, care has to be taken that the different jobs use different
> trash directories.
Good idea!
> This commit does so, by inspecting the MAKEFLAGS variable to detect
> if the option "-j" or "--jobs" was passed to make.  In that case, the
> test is run with the new "--parallel" option.

How about making the test harness be able to run multiple tests in parallel by default, i.e. always use a different trash directory name for each test, without adding the new option? The implementation would be a bit simpler (no -j detection needed) and the documentation would be simpler, too. We could say "look in 'trash directory/tNNNN'" instead of "look in this place unless you used -j".

Show 20 quoted lines
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index 11c0275..c5868c4 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -74,6 +74,7 @@ esac
>  	) &&
>  	color=t
>  
> +test="trash directory"
>  while test "$#" -ne 0
>  do
>  	case "$1" in
> @@ -94,6 +95,10 @@ do
>  	--no-python)
>  		# noop now...
>  		shift ;;
> +	--parallel)
> +		test="$test.$(basename "$0" .sh)"
> +		remove_trash="$(pwd)/$test"
> +		shift ;;
test="trash directory/$this_test"?

The advantage would be that all trash was still inside "trash directory". Not sure if the extra directory level would break something. (Note: $this_test is defined a bit later in the script.)

test="trash for $this_test"?
This one still has a space in it..
Show 9 quoted lines
>  	*)
>  		break ;;
>  	esac
> @@ -449,6 +454,11 @@ test_done () {
>  		# we will leave things as they are.
>  
>  		say_color pass "passed all $msg"
> +
> +		test ! -z = "$remove_trash" &&
This test succeeds always, because = is not an empty string.
René
Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 26 in “Enable parallelized tests”
  1. 0/3 Enable parallelized testsJohannes Schindelin, Aug 8, 2008
  2. 1/3 t9700: remove useless checkJohannes Schindelin, Aug 8, 2008
  3. 2/3 tests: Clarify dependencies between tests, 'aggregate-results' and 'clean'Johannes Schindelin, Aug 8, 2008
  4. 3/3 Enable parallel testsJohannes Schindelin, Aug 8, 2008
  5. Junio C HamanoAug 8, 2008
  6. Johannes SchindelinAug 8, 2008
  7. Junio C HamanoAug 8, 2008
  8. René ScharfeAug 8, 2008
  9. Junio C HamanoAug 8, 2008
  10. tests: use $TEST_DIRECTORY to refer to the t/ directoryJunio C Hamano, Aug 8, 2008
  11. Johannes SchindelinAug 8, 2008
  12. Junio C HamanoAug 8, 2008
  13. Stephan BeyerAug 8, 2008
  14. Olivier MarinAug 9, 2008
  15. Junio C HamanoAug 9, 2008
  16. Junio C HamanoAug 10, 2008
  17. Johannes SchindelinAug 8, 2008
  18. 3/3 Enable parallel testsJohannes Schindelin, Aug 8, 2008
  19. Stephan BeyerAug 8, 2008
  20. Johannes SchindelinAug 8, 2008
  21. SZEDER GáborAug 8, 2008
  22. Stephan BeyerAug 8, 2008
  23. Johannes SchindelinAug 8, 2008
  24. Stephan BeyerAug 8, 2008
  25. Johannes SchindelinAug 8, 2008
  26. Stephan BeyerAug 8, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.