git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "René Scharfe" <l.s.r@web.de>
To: Christian Couder <christian.couder@gmail.com>,
	Josh Steadmon <steadmon@google.com>,
	git@vger.kernel.org, Phillip Wood <phillip.wood123@gmail.com>,
	Achu Luma <ach.lumap@gmail.com>
Subject: Re: [PATCH 3/3] t-ctype: do one test per class and char
Date: Sat, 2 Mar 2024 23:00:00 +0100	[thread overview]
Message-ID: <bd48f19b-0600-4e64-835b-98d3a97bb7f2@web.de> (raw)
In-Reply-To: <CAP8UFD2t1KRo01eenK_RVndyVx5Vp9F4FepTgnR+mwhTGTvXnw@mail.gmail.com>

Am 27.02.24 um 11:04 schrieb Christian Couder:
> On Mon, Feb 26, 2024 at 7:58 PM Josh Steadmon <steadmon@google.com> wrote:
>>
>> On 2024.02.26 18:26, René Scharfe wrote:
>
>>> The output is clean as well, but there's a lot of it.  Perhaps too much.
>>> The success messages are boring, though, and if all checks pass then the
>>> only useful information is the status code.  A TAP harness like prove
>>> summarizes that nicely:
>>>
>>>    $ prove t/unit-tests/bin/t-ctype
>>>    t/unit-tests/bin/t-ctype .. ok
>>>    All tests successful.
>>>    Files=1, Tests=3598,  0 wallclock secs ( 0.08 usr +  0.00 sys =  0.08 CPU)
>>>    Result: PASS
>>>
>>> Filtering out passing checks e.g. with "| grep -v ^ok" would help when
>>> debugging a test failure. I vaguely miss the --immediate switch from the
>>> regular test library, however.
>>
>> Yeah, I agree here. It's a lot of output but it's almost always going to
>> be consumed by a test harness rather than a human, and it's easy to
>> filter out the noise if someone does need to do some manual debugging.
>
> Yeah, I know about TAP harnesses like prove, but the most
> straightforward way to run the unit tests is still `make unit-tests`
> in the t/ directory. Also when you add or change some tests, it's a
> good idea to run `make unit-tests` to see what the output is, so you
> still have to see that output quite often when you work on tests and
> going through 3598 of mostly useless output instead of just 14 isn't
> nice.

I was starting the programs from t/unit-tests/bin/ individually because
I didn't know 'make unit-tests' exists.  This is much nicer, thank you!
Especially after adding 'DEFAULT_UNIT_TEST_TARGET = unit-tests-prove' to
config.mak to complement the 'DEFAULT_TEST_TARGET = prove' I added long
ago.  It would be even nicer if the former was the default when the
latter is set.

As unit tests are added, their output is surely going to grow to
multiple screens with or without prove, no?  So someone writing or
debugging tests will still go back to starting then individually
eventually.

The size of the output in itself is not a problem, I assume, but that
most of it is useless -- details of successful tests are uninteresting.
A test harness can aggregate the output, but prove annoyed me when used
with the regular tests by also aggregating error output and only showing
the numbers of failed tests.  Finding their names involved running the
test script again without prove.  Turns out it has an option for that.
Added 'GIT_PROVE_OPTS = --failures' to config.mak as well, will see if
it helps.

Is it too much to ask developers to use a test harness?  Perhaps: It's
yet another dependency and not enabled by default.

What's the right level of aggregation and how do we achieve it?
Grouping by class is natural and follows the test definition.  We
could stop after patch 2.  Dunno.

René

  reply	other threads:[~2024-03-02 22:00 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-25 11:27 [PATCH 0/3] t-ctype: simplify unit test definitions René Scharfe
2024-02-25 11:27 ` [PATCH 1/3] t-ctype: allow NUL anywhere in the specification string René Scharfe
2024-02-25 18:05   ` Eric Sunshine
2024-02-25 18:28     ` René Scharfe
2024-02-25 18:41       ` Eric Sunshine
2024-02-25 21:00         ` Jeff King
2024-02-25 21:02           ` Eric Sunshine
2024-02-25 11:27 ` [PATCH 2/3] t-ctype: avoid duplicating class names René Scharfe
2024-02-25 11:27 ` [PATCH 3/3] t-ctype: do one test per class and char René Scharfe
2024-02-26  9:28   ` Christian Couder
2024-02-26 17:26     ` René Scharfe
2024-02-26 17:44       ` Junio C Hamano
2024-02-26 18:58       ` Josh Steadmon
2024-02-27 10:04         ` Christian Couder
2024-03-02 22:00           ` René Scharfe [this message]
2024-03-04 10:00             ` Christian Couder
2024-03-06 18:16               ` René Scharfe
2024-03-04 18:35             ` Josh Steadmon
2024-03-04 18:46               ` Junio C Hamano
2024-03-03 10:13 ` [PATCH v2 0/4] t-ctype: simplify unit test definitions René Scharfe
2024-03-03 10:13   ` [PATCH v2 1/4] t-ctype: allow NUL anywhere in the specification string René Scharfe
2024-03-03 10:13   ` [PATCH v2 2/4] t-ctype: simplify EOF check René Scharfe
2024-03-03 10:13   ` [PATCH v2 3/4] t-ctype: align output of i René Scharfe
2024-03-03 10:13   ` [PATCH v2 4/4] t-ctype: avoid duplicating class names René Scharfe
2024-03-04  9:51     ` Phillip Wood
2024-03-06 18:16       ` René Scharfe
2024-03-08 14:05         ` Phillip Wood
2024-03-09 11:28         ` Phillip Wood
2024-03-10 12:48           ` René Scharfe
2024-03-04  9:25   ` [PATCH v2 0/4] t-ctype: simplify unit test definitions Christian Couder

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bd48f19b-0600-4e64-835b-98d3a97bb7f2@web.de \
    --to=l.s.r@web.de \
    --cc=ach.lumap@gmail.com \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=phillip.wood123@gmail.com \
    --cc=steadmon@google.com \
    /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.
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 NNTP newsgroup(s).