From: Jens Lehmann <Jens.Lehmann@web.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: [PATCH v2] tests: print failed test numbers at the end of the test run
Date: Sun, 24 Jul 2011 15:35:54 +0200 [thread overview]
Message-ID: <4E2C1FBA.3010606@web.de> (raw)
In-Reply-To: <7vmxg4w2fm.fsf@alter.siamese.dyndns.org>
On modern multi-core processors "make test" is often run in multiple jobs.
If one of them fails the test run does stop, but the concurrently running
tests finish their run. It is rather easy to find out which test failed by
doing a "ls -d t/trash*". But that only works when you don't use the "-i"
option to "make test" because you want to get an overview of all failing
tests. In that case all thrash directories are deleted end and the
information which tests failed is lost.
If one or more tests failed, print a list of them before the test summary:
failed test(s): t1000 t6500
fixed 0
success 7638
failed 3
broken 49
total 7723
This makes it possible to just run the test suite with -i and collect all
failed test scripts at the end for further examination.
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
---
Am 24.07.2011 09:41, schrieb Junio C Hamano:
> Jens Lehmann <Jens.Lehmann@web.de> writes:
>
>> Maybe I'm missing something completely obvious, but I always have a hard
>> time finding out which test scripts did fail in a test run with -j30.
>
> I run "ls -d t/trash*" for that ;-)
Yup. But that won't work when you use "-i" to continue to run all tests
even when some fail, as all trash directories get deleted in the end. Or
did I manage to overlook an option which stops that? ;-)
I rephrased the commit message to make it clear my patch only changes the
behavior when "-i" is used and one or more tests fail, as the code in
question isn't executed otherwise.
>> + if test $value != 0; then
>> + testnum=$(echo $file | cut -b 14-18)
>> + failed_tests="$failed_tests $testnum"
>> + fi
>
> Somehow "cut" here feels dirty, as it hardcodes a mysterious offset that
> cannot be guessed without knowing what string it is cutting from by
> looking at t/Makefile.
>
> testnum=$(expr "$file" : 'test-results/\(t[0-9]*\)-')
Thanks, this version is using that expression.
t/aggregate-results.sh | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/t/aggregate-results.sh b/t/aggregate-results.sh
index d206b7c..60465fa 100755
--- a/t/aggregate-results.sh
+++ b/t/aggregate-results.sh
@@ -1,5 +1,6 @@
#!/bin/sh
+failed_tests=
fixed=0
success=0
failed=0
@@ -18,7 +19,12 @@ do
success)
success=$(($success + $value)) ;;
failed)
- failed=$(($failed + $value)) ;;
+ failed=$(($failed + $value))
+ if test $value != 0; then
+ testnum=$(expr "$file" : 'test-results/\(t[0-9]*\)-')
+ failed_tests="$failed_tests $testnum"
+ fi
+ ;;
broken)
broken=$(($broken + $value)) ;;
total)
@@ -27,6 +33,10 @@ do
done <"$file"
done
+if [ -n "$failed_tests" ]; then
+ printf "\nfailed test(s):$failed_tests\n\n"
+fi
+
printf "%-8s%d\n" fixed $fixed
printf "%-8s%d\n" success $success
printf "%-8s%d\n" failed $failed
--
1.7.6.346.g940def.dirty
next prev parent reply other threads:[~2011-07-24 13:41 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-23 19:16 [RFC PATCH] tests: print failed test numbers at the end of the test run Jens Lehmann
2011-07-24 7:41 ` Junio C Hamano
2011-07-24 13:35 ` Jens Lehmann [this message]
2011-07-24 15:39 ` [PATCH v2] " Jeff King
2011-07-24 19:21 ` Jens Lehmann
2011-07-25 14:31 ` Sverre Rabbelier
2011-07-26 4:25 ` [RFC PATCH] " Nguyen Thai Ngoc Duy
2011-07-26 5:42 ` Jeff King
2011-07-26 6:10 ` Jeff King
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=4E2C1FBA.3010606@web.de \
--to=jens.lehmann@web.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).