Skip to content

Commit

Permalink
Enable parallel tests
Browse files Browse the repository at this point in the history
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.

This commit does so, by creating the trash directories with a suffix
that is unique with regard to the test, as it is the test's base name.

Further, the trash directory is removed in the test itself if
everything went fine, so that the trash directories do not
pile up only to be removed at the very end.

If a test failed, the trash directory is not removed.  Chances are
that the exact error message is lost in the clutter, but you can still
see what test failed from the name of the trash directory, and repeat
the test (without -j).

If all was good, you will see the aggregated results.

Suggestions to simplify this commit came from Junio and René.

There still is an issue with tests that want to run a server process and
listen to a fixed port (http and svn) --- they cannot run in parallel but
this patch does not address this issue.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
dscho authored and gitster committed Aug 9, 2008
1 parent e3df89a commit abc5d37
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
1 change: 0 additions & 1 deletion t/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,3 @@ full-svn-test:
$(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=0 LC_ALL=en_US.UTF-8

.PHONY: pre-clean $(T) aggregate-results clean
.NOTPARALLEL:
8 changes: 7 additions & 1 deletion t/test-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,11 @@ test_done () {
# we will leave things as they are.

say_color pass "passed all $msg"

test -d "$remove_trash" &&
cd "$(dirname "$remove_trash")" &&
rm -rf "$(basename "$remove_trash")"

exit 0 ;;

*)
Expand Down Expand Up @@ -485,7 +490,8 @@ fi
. ../GIT-BUILD-OPTIONS

# Test repository
test="trash directory"
test="trash directory.$(basename "$0" .sh)"
remove_trash="$TEST_DIRECTORY/$test"
rm -fr "$test" || {
trap - exit
echo >&5 "FATAL: Cannot prepare test area"
Expand Down

0 comments on commit abc5d37

Please sign in to comment.