git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Jonathan Nieder
Message 7 of 7 in “WIP: Report intra-test progress with TAP subtests”
  1. WIP: Report intra-test progress with TAP subtestsÆvar Arnfjörð Bjarmason, Aug 10, 2010
  2. Jonathan NiederAug 11, 2010
  3. Ævar Arnfjörð BjarmasonAug 11, 2010
  4. Jonathan NiederAug 11, 2010
  5. Johannes SixtAug 11, 2010
  6. Jonathan NiederAug 11, 2010
  7. Ævar Arnfjörð BjarmasonAug 11, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.