Re: [RFC/PATCH] WIP: Report intra-test progress with TAP subtests
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Aug 11, 2010, 16:41 UTC
- Message-ID
- <AANLkTikphSj-tLRZwJ3MPrhYtPObZv2kJ0z4iJLJF=Gy@mail.gmail.com>
- In-Reply-To
- <20100811052830.GA1355@burratino>
On Wed, Aug 11, 2010 at 05:28, Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 29 quoted lines
> Æ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.
>
>> 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 stderr
>
> Descriptor 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?Nope, thanks. Using >&5 works.
Show 26 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
>> + fi
>
> This would make the test continue after the subtest, right? Is that
> intended?No, should be return 0/1. Changed that in my working branch.
I'm going to drop this for a while until my pending patches to test stuff get into pu. But initial experiments with using >&5 everywhere for test progress are promising:
http://github.com/avar/git/tree/test-intra-progress-using-tap-subtests-v2