diff options
author | Jeff King <peff@peff.net> | 2009-08-09 04:39:45 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-08-09 10:50:32 -0700 |
commit | f423ef5f2bec35efbc328f02e468a18612970242 (patch) | |
tree | fd02a26d72f20979563fb76981f35661b6bc003e /t | |
parent | tests: provide $TRASH_DIRECTORY variable (diff) | |
download | tgif-f423ef5f2bec35efbc328f02e468a18612970242.tar.xz |
tests: allow user to specify trash directory location
The tests generate a large amount of I/O activity creating
and destroying repositories and files. We can improve the
time it takes to run the test suite by creating trash
directories on filesystems with better performance
characteristic, even though we may not want the rest of the
git repository on those filesystems (e.g., because they are
not network connected, or because they are temporary
ramdisks).
For example, on a dual processor system:
$ cd t && time make -j32
real 1m51.562s
user 0m59.260s
sys 1m20.933s
# /dev/shm is tmpfs
$ cd t && time make -j32 GIT_TEST_OPTS="--root=/dev/shm"
real 1m1.484s
user 0m53.555s
sys 1m5.264s
We almost halve the wall clock time, and we utilize the
dual processors much better.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rw-r--r-- | t/test-lib.sh | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/t/test-lib.sh b/t/test-lib.sh index e6a7bb1b45..a5b8d03db0 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -114,6 +114,9 @@ do valgrind=t; verbose=t; shift ;; --tee) shift ;; # was handled already + --root=*) + root=$(expr "z$1" : 'z[^=]*=\(.*\)') + shift ;; *) echo "error: unknown test option '$1'" >&2; exit 1 ;; esac @@ -645,7 +648,11 @@ fi # Test repository test="trash directory.$(basename "$0" .sh)" -TRASH_DIRECTORY="$TEST_DIRECTORY/$test" +test -n "$root" && test="$root/$test" +case "$test" in +/*) TRASH_DIRECTORY="$test" ;; + *) TRASH_DIRECTORY="$TEST_DIRECTORY/$test" ;; +esac test ! -z "$debug" || remove_trash=$TRASH_DIRECTORY rm -fr "$test" || { GIT_EXIT_OK=t |