From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH] git-notes: Run partial expensive test everywhere
Date: Tue, 10 Aug 2010 19:56:04 +0000 [thread overview]
Message-ID: <1281470164-27008-1-git-send-email-avarab@gmail.com> (raw)
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
next reply other threads:[~2010-08-10 19:56 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-10 19:56 Ævar Arnfjörð Bjarmason [this message]
2010-08-10 20:29 ` [PATCH] git-notes: Run partial expensive test everywhere Sverre Rabbelier
2010-08-10 21:00 ` Ævar Arnfjörð Bjarmason
2010-08-10 21:56 ` Ævar Arnfjörð Bjarmason
2010-08-10 23:37 ` [PATCH v2] " Ævar Arnfjörð Bjarmason
2010-08-19 15:50 ` Ævar Arnfjörð Bjarmason
2010-08-24 7:14 ` Jonathan Nieder
2010-08-24 16:46 ` Junio C Hamano
2010-08-29 19:20 ` Ævar Arnfjörð Bjarmason
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1281470164-27008-1-git-send-email-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).