Permalink
Browse files

the run-partial-expensive-git-notes-test-everywhere/ series

  • Loading branch information...
1 parent 5cf2bc6 commit 587a35066639b47f7ffd72d5522bde54dd5c5e66 @avar committed Aug 10, 2010
@@ -0,0 +1,89 @@
+From c4e1c68dee57c48dab97948c5097f8a39f7a1b80 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= <avarab@gmail.com>
+Date: Tue, 10 Aug 2010 18:45:16 +0000
+Subject: [PATCH] git-notes: Run partial expensive test everywhere
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The git-notes expensive timing test is only expensive because it
+either did 1k 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 test
+prerequisite facility.
+
+Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+---
+ t/t3302-notes-index-expensive.sh | 39 ++++++++++++++++++++++++++-----------
+ 1 files changed, 27 insertions(+), 12 deletions(-)
+
+diff --git a/t/t3302-notes-index-expensive.sh b/t/t3302-notes-index-expensive.sh
+index 361a10a..3b8313c 100755
+--- a/t/t3302-notes-index-expensive.sh
++++ b/t/t3302-notes-index-expensive.sh
+@@ -7,11 +7,16 @@ 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
++
++if test -x /usr/bin/time
++then
++ # Hack around multiple test prerequisites not supporting AND-ing
++ # of terms
++ test_set_prereq USR_BIN_TIME+NOT_EXPENSIVE
++ test_have_prereq EXPENSIVE && test_set_prereq USR_BIN_TIME+EXPENSIVE
++fi
+
+ create_repo () {
+ number_of_commits=$1
+@@ -102,17 +107,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
+--
+1.7.2.1.295.gd03d
+

0 comments on commit 587a350

Please sign in to comment.