Re: [RFC/PATCH] WIP: Report intra-test progress with TAP subtests
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Aug 11, 2010, 05:28 UTC
- Message-ID
- <20100811052830.GA1355@burratino>
- In-Reply-To
- <1281473829-2102-1-git-send-email-avarab@gmail.com>
Ævar Arnfjörð Bjarmason wrote:
> Here's an attempt at that, I've convented test_commit, test_merge and > test_cmp to report intra-test progress. The only problem is that it > doesn't quite work.
I forgot to say: thanks for the demonstration. This is neat stuff.
Show 16 quoted lines
> eval >&3 2>&4 "$1"
>
> So when you run it you'll just get:
>
> $ ./t0100-previous.sh
> 1..1
> ok 1 - branch -d @{-1}
> ok 2 - branch -d @{-12} when there is not enough switches yet
> 1..2
> ok 3 - merge @{-1}
> ok 4 - merge @{-1} when there is not enough switches yet
> # passed all 4 test(s)
> 1..4
>
> Is there some filedescriptor saving/redirection magic I can do within
> the subtest code to print things to the *real* stdout and stderrDescriptor 5 is a pass-through for stdout: see v0.99.5~24^2~4 (Trapping exit in tests, 2005-08-10).
Do you need a pass-through for stderr, too, or was that theoretical?
Show 23 quoted lines
> @@ -290,20 +295,38 @@ test_tick () {
>
> test_commit () {
> file=${2:-"$1.t"}
> - echo "${3-$1}" > "$file" &&
> - git add "$file" &&
> - test_tick &&
> - git commit -m "$1" &&
> - git tag "$1"
> + subtest_count=$(($subtest_count + 1))
> +
> + if echo "${3-$1}" > "$file" &&
> + git add "$file" &&
> + test_tick &&
> + git commit -m "$1" &&
> + git tag "$1"
> + then
> + test_ok_ "test_commit file:<$file> message:<$1> contents<${3-$1}>"
> + true
> + else
> + test_failure_ "test_commit file:<$file> message:<$1> contents<${3-$1}>"
> + true
> + fiThis would make the test continue after the subtest, right? Is that intended?