From: Ævar Arnfjörð Bjarmason Date: Wed, 11 Aug 2010 16:41:52 GMT Subject: Re: [RFC/PATCH] WIP: Report intra-test progress with TAP subtests Message-ID: In-Reply-To: <20100811052830.GA1355@burratino> On Wed, Aug 11, 2010 at 05:28, Jonathan Nieder wrote: > Æ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. >> @@ -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