From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Jeff King <peff@peff.net>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: Re: [PATCH 6/7] test-lib: make --verbose output valid TAP
Date: Tue, 9 Mar 2021 22:31:17 +0100 [thread overview]
Message-ID: <20210309213117.GB1016223@szeder.dev> (raw)
In-Reply-To: <87k0qghwps.fsf@evledraar.gmail.com>
On Tue, Mar 09, 2021 at 09:57:03PM +0100, Ævar Arnfjörð Bjarmason wrote:
> >> diff --git a/t/README b/t/README
> >> index 2cc8cbc7185..f09d94e754e 100644
> >> --- a/t/README
> >> +++ b/t/README
> >> @@ -157,10 +157,13 @@ appropriately before running "make". Short options can be bundled, i.e.
> >>
> >> -V::
> >> --verbose-log::
> >> - Write verbose output to the same logfile as `--tee`, but do
> >> - _not_ write it to stdout. Unlike `--tee --verbose`, this option
> >> + An alias for `--verbose --tee`. This option
> >> is safe to use when stdout is being consumed by a TAP parser
> >> - like `prove`. Implies `--tee` and `--verbose`.
> >> + like `prove`.
> >> + Historically this option was different from `--verbose --tee`
> >> + and would not write any verbose output to stdout to ensure the
> >> + TAP-correctness of the output. The TAP-correctness of the
> >> + output is now sanity checked by the test library,
> >
> > Not everyone is using a TAP harness to run the tests, and, therefore,
> > '--verbose-log' should not spew out verbose output to the terminal.
>
> IOW even though --verbose-log was meant as a hack to make prove happy,
> you've since come to like the "verbose in log, but not stdout" mode and
> want that kept?
Yes, '--verbose-log' proved to be really convenient, even if it was
meant to solve a different issue.
> Yes, this patch takes that mode away.
>
> Yes, I can change it.
>
> Would your use-case for this be satisfied by having prove(1) just emit
> different output for you in this scenario, so you'd need to invoke this
> as something like:
>
> prove <test> :: --verbose --tee # or --verbose-log
I use prove to run the test suite, but I don't and won't use prove to
run a single test.
The behavior of './t1234-foo.sh -V' with or without '-x' should not
change without _very_ convincing reasons. "We now output valid TAP
even with --verbose, so we don't need it for the TAP harness" is
definitely not convincing.
> Becuse the advantage of this series is that that sort of thing becomes
> really trivial without everything needing to be hardcoded in
> test-lib.sh, observe (this is with my series):
>
>
> 0 $ PERL5LIB=. prove -v --formatter=SZEDERVerboseLog ./t0201-gettext-fallbacks.sh :: --verbose-log
Well, this doesn't look trivial at all, does it? In fact, I consider
this unusably convoluted.
> # lib-gettext: No is_IS UTF-8 locale available
> # lib-gettext: No is_IS ISO-8859-1 locale available
> ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to fallthrough)
> ok 2 - sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set
> ok 3 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough
> ok 4 - gettext: our gettext() fallback has pass-through semantics
> ok 5 - eval_gettext: our eval_gettext() fallback has pass-through semantics
> ok 6 - eval_gettext: our eval_gettext() fallback can interpolate variables
> ok 7 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces
> ok 8 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces and quotes
> # passed all 8 test(s)
> 1..8
> ok
> All tests successful.
> Files=1, Tests=8, 1 wallclock secs ( 0.01 usr 0.01 sys + 0.07 cusr 0.01 csys = 0.10 CPU)
> Result: PASS
> $ wc -l test-results/t0201-gettext-fallbacks.out
> 75 test-results/t0201-gettext-fallbacks.out
>
> All without any patching on top to the test-lib.sh, just:
>
> $ cat SZEDERVerboseLog.pm
> package SZEDERVerboseLog::Session;
> use base 'TAP::Formatter::Console::Session';
>
> sub result {
> my ($self, $result) = @_;
> return if $result->is_unknown;
> return $self->SUPER::result($result);
> }
>
> package SZEDERVerboseLog;
> use strict;
> use warnings;
> use base 'TAP::Formatter::Console';
>
> sub open_test {
> my ($self, $test, $parser) = @_;
> my $session = SZEDERVerboseLog::Session->new( {
> name => $test,
> formatter => $self,
> parser => $parser,
> } );
> return $session;
> }
>
> 1;
>
> The "is_unknown" is everything that's not TAP syntax.
>
next prev parent reply other threads:[~2021-03-09 21:32 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-21 4:14 Prove "Tests out of sequence" Error Lars Schneider
2016-10-21 6:10 ` Stefan Beller
2016-10-21 8:20 ` Jeff King
2016-10-21 8:43 ` Jeff King
2016-10-21 10:41 ` [PATCH 0/3] fix travis TAP/--verbose conflict Jeff King
2016-10-21 10:42 ` [PATCH 1/3] test-lib: handle TEST_OUTPUT_DIRECTORY with spaces Jeff King
2016-10-21 10:48 ` [PATCH 2/3] test-lib: add --verbose-log option Jeff King
2016-10-21 17:12 ` Junio C Hamano
2016-10-21 21:46 ` Jeff King
2021-02-28 20:25 ` [PATCH/RFC] test-lib: make --verbose work under prove Ævar Arnfjörð Bjarmason
2021-03-01 9:51 ` Jeff King
2021-03-01 13:54 ` Ævar Arnfjörð Bjarmason
2021-03-09 16:02 ` [PATCH 0/6 + 1] test-lib: make --verbose output valid TAP Ævar Arnfjörð Bjarmason
2021-03-09 17:52 ` SZEDER Gábor
2021-03-09 21:03 ` Ævar Arnfjörð Bjarmason
2021-03-09 22:07 ` SZEDER Gábor
2021-03-09 16:02 ` [PATCH 1/7] test-lib: remove test_external Ævar Arnfjörð Bjarmason
2021-03-10 1:04 ` Junio C Hamano
2021-03-10 2:22 ` Ævar Arnfjörð Bjarmason
2021-03-09 16:02 ` [PATCH 2/7] test-lib: add say_color_tap helper to emit TAP format Ævar Arnfjörð Bjarmason
2021-03-10 0:39 ` Junio C Hamano
2021-03-09 16:02 ` [PATCH 3/7] test-lib: color "ok" TAP directives green under --verbose (or -x) Ævar Arnfjörð Bjarmason
2021-03-09 16:02 ` [PATCH 4/7] test-lib: add tee with TAP support to test-tool Ævar Arnfjörð Bjarmason
2021-03-09 16:02 ` [PATCH 5/7] test-lib: indent and format GIT_TEST_TEE_OUTPUT_FILE code Ævar Arnfjörð Bjarmason
2021-03-09 16:02 ` [PATCH 6/7] test-lib: make --verbose output valid TAP Ævar Arnfjörð Bjarmason
2021-03-09 18:59 ` SZEDER Gábor
2021-03-09 20:57 ` Ævar Arnfjörð Bjarmason
2021-03-09 21:31 ` SZEDER Gábor [this message]
2021-03-10 2:35 ` Ævar Arnfjörð Bjarmason
2021-03-16 9:10 ` Ævar Arnfjörð Bjarmason
2021-03-09 19:12 ` SZEDER Gábor
2021-03-10 1:11 ` Junio C Hamano
2021-03-10 7:42 ` Chris Torek
2021-03-09 16:02 ` [RFC/PATCH 7/7] test-lib: generate JUnit output via TAP Ævar Arnfjörð Bjarmason
2021-03-19 14:14 ` Johannes Schindelin
2021-03-21 0:28 ` Ævar Arnfjörð Bjarmason
2021-03-22 13:46 ` Johannes Schindelin
2016-10-21 10:48 ` [PATCH 3/3] travis: use --verbose-log test option Jeff King
2016-10-21 17:19 ` [PATCH 0/3] fix travis TAP/--verbose conflict Stefan Beller
2016-10-24 18:06 ` Lars Schneider
2016-10-21 15:29 ` Prove "Tests out of sequence" Error Jacob Keller
2016-10-21 15:35 ` Jeff King
2016-10-21 15:42 ` Jacob Keller
2016-10-21 15:48 ` Jeff King
2016-10-21 16:15 ` Jacob Keller
2016-10-22 4:45 ` [PATCH 4/3] test-lib: bail out when "-v" used under "prove" Jeff King
2016-10-22 5:25 ` Jacob Keller
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210309213117.GB1016223@szeder.dev \
--to=szeder.dev@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).