aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2010-08-10 23:37:48 +0000
committerJunio C Hamano <gitster@pobox.com>2010-08-18 12:42:46 -0700
commitd0736f7b81ac2fcb763279b3bf3e90faa3fb6609 (patch)
treea4b85959aec0fbe3c69d4a67d33242076745d37f
parente1697cc5b5d765f0544b370ccdb87145cdfd91fc (diff)
downloadgit-d0736f7b81ac2fcb763279b3bf3e90faa3fb6609.tar.gz
git-d0736f7b81ac2fcb763279b3bf3e90faa3fb6609.tar.xz
git-notes: Run partial expensive test everywhere
The git-notes expensive timing test is only expensive because it either did 10,100,1k and 10k iterations or nothing. Change it to do 10 by default, with an option to run the expensive version with the old GIT_NOTES_TIMING_TESTS=ZomgYesPlease variable. Since nobody was ostensibly running this test under TAP the code had bitrotted so that it emitted invalid TAP. This change fixes that. The old version would also mysteriously fail on systems without /usr/bin/time, there's now a check for that using the multiple test prerequisite facility. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t3302-notes-index-expensive.sh32
1 files changed, 20 insertions, 12 deletions
diff --git a/t/t3302-notes-index-expensive.sh b/t/t3302-notes-index-expensive.sh
index 361a10aeb..7c08e99c4 100755
--- a/t/t3302-notes-index-expensive.sh
+++ b/t/t3302-notes-index-expensive.sh
@@ -7,11 +7,9 @@ test_description='Test commit notes index (expensive!)'
. ./test-lib.sh
-test -z "$GIT_NOTES_TIMING_TESTS" && {
- skip_all="Skipping timing tests"
- test_done
- exit
-}
+test_set_prereq NOT_EXPENSIVE
+test -n "$GIT_NOTES_TIMING_TESTS" && test_set_prereq EXPENSIVE
+test -x /usr/bin/time && test_set_prereq USR_BIN_TIME
create_repo () {
number_of_commits=$1
@@ -102,17 +100,27 @@ time_notes () {
done
}
-for count in 10 100 1000 10000; do
+do_tests () {
+ pr=$1
+ count=$2
+
+ test_expect_success $pr 'setup / mkdir' '
+ mkdir $count &&
+ cd $count
+ '
- mkdir $count
- (cd $count;
+ test_expect_success $pr "setup $count" "create_repo $count"
- test_expect_success "setup $count" "create_repo $count"
+ test_expect_success $pr 'notes work' "test_notes $count"
- test_expect_success 'notes work' "test_notes $count"
+ test_expect_success USR_BIN_TIME,$pr 'notes timing with /usr/bin/time' "time_notes 100"
+
+ test_expect_success $pr 'teardown / cd ..' 'cd ..'
+}
- test_expect_success 'notes timing' "time_notes 100"
- )
+do_tests NOT_EXPENSIVE 10
+for count in 100 1000 10000; do
+ do_tests EXPENSIVE $count
done
test_done