Skip to content

Commit

Permalink
git-notes: Run partial expensive test everywhere
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ævar Arnfjörð Bjarmason authored and Junio C Hamano committed Aug 18, 2010
1 parent e1697cc commit d0736f7
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions t/t3302-notes-index-expensive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

0 comments on commit d0736f7

Please sign in to comment.