Replacing TAP test planning with done_testing()

Started by Daniel Gustafssonabout 4 years ago11 messageshackers
Jump to latest
#1Daniel Gustafsson
daniel@yesql.se

Whether or not to explicitly plan the number of TAP tests per suite has been
discussed a number of times on this list, often as a side-note in an unrelated
thread which adds/modifies a test. The concensus has so far weighed towards
not doing manual bookkeeping of test plans but to let Test::More deal with it.
So far, no concrete patch to make that happen has been presented though.

The attached patch removes all Test::More planning and instead ensures that all
tests conclude with a done_testing() call. While there, I also removed a few
exit(0) calls from individual tests making them more consistent.

Thoughts?

--
Daniel Gustafsson https://vmware.com/

Attachments:

0001-Replace-Test-More-plans-with-done_testing.patchapplication/octet-stream; name=0001-Replace-Test-More-plans-with-done_testing.patch; x-unix-mode=0644Download+391-302
#2Julien Rouhaud
rjuju123@gmail.com
In reply to: Daniel Gustafsson (#1)
Re: Replacing TAP test planning with done_testing()

Hi,

On Wed, Feb 09, 2022 at 03:01:36PM +0100, Daniel Gustafsson wrote:

Whether or not to explicitly plan the number of TAP tests per suite has been
discussed a number of times on this list, often as a side-note in an unrelated
thread which adds/modifies a test. The concensus has so far weighed towards
not doing manual bookkeeping of test plans but to let Test::More deal with it.
So far, no concrete patch to make that happen has been presented though.

The attached patch removes all Test::More planning and instead ensures that all
tests conclude with a done_testing() call. While there, I also removed a few
exit(0) calls from individual tests making them more consistent.

Thoughts?

+1, I don't think it adds much value compared to the extra work it requires.
Not having the current total also doesn't seem much a problem, as it was said
on the other thread no tests is long enough to really care, at least on a
development box.

I still remember the last time I wanted to add some TAP tests to pg_dump, and
it wasn't pleasant. In any case we should at least get rid of this one.

The patch itself looks good to me.

In reply to: Daniel Gustafsson (#1)
Re: Replacing TAP test planning with done_testing()

Daniel Gustafsson <daniel@yesql.se> writes:

Whether or not to explicitly plan the number of TAP tests per suite has been
discussed a number of times on this list, often as a side-note in an unrelated
thread which adds/modifies a test. The concensus has so far weighed towards
not doing manual bookkeeping of test plans but to let Test::More deal with it.
So far, no concrete patch to make that happen has been presented though.

The attached patch removes all Test::More planning and instead ensures that all
tests conclude with a done_testing() call. While there, I also removed a few
exit(0) calls from individual tests making them more consistent.

Thoughts?

LGTM, +1.

I have grepped the patched code and can verify that there are no
occurrences of `tests => N` (with or without quotes around `tests`) left
in any test scripts, and `make check-world` passes.

I'm especially pleased by the removal of the big chunks of test count
calculating code in the pg_dump tests.

- ilmari

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dagfinn Ilmari Mannsåker (#3)
Re: Replacing TAP test planning with done_testing()

=?utf-8?Q?Dagfinn_Ilmari_Manns=C3=A5ker?= <ilmari@ilmari.org> writes:

Daniel Gustafsson <daniel@yesql.se> writes:

The attached patch removes all Test::More planning and instead ensures that all
tests conclude with a done_testing() call. While there, I also removed a few
exit(0) calls from individual tests making them more consistent.

LGTM, +1.

LGTM too.

regards, tom lane

#5Michael Paquier
michael@paquier.xyz
In reply to: Tom Lane (#4)
Re: Replacing TAP test planning with done_testing()

On Wed, Feb 09, 2022 at 02:49:47PM -0500, Tom Lane wrote:

=?utf-8?Q?Dagfinn_Ilmari_Manns=C3=A5ker?= <ilmari@ilmari.org> writes:

Daniel Gustafsson <daniel@yesql.se> writes:

The attached patch removes all Test::More planning and instead ensures that all
tests conclude with a done_testing() call. While there, I also removed a few
exit(0) calls from individual tests making them more consistent.

LGTM, +1.

LGTM too.

Not tested, but +1. Could it be possible to backpatch that even if
this could be qualified as only cosmetic? Each time a test is
backpatched we need to tweak the number of tests planned, and that may
change slightly depending on the branch dealt with.
--
Michael

#6Kyotaro Horiguchi
horikyota.ntt@gmail.com
In reply to: Michael Paquier (#5)
Re: Replacing TAP test planning with done_testing()

At Thu, 10 Feb 2022 09:58:27 +0900, Michael Paquier <michael@paquier.xyz> wrote in

On Wed, Feb 09, 2022 at 02:49:47PM -0500, Tom Lane wrote:

=?utf-8?Q?Dagfinn_Ilmari_Manns=C3=A5ker?= <ilmari@ilmari.org> writes:

Daniel Gustafsson <daniel@yesql.se> writes:

The attached patch removes all Test::More planning and instead ensures that all
tests conclude with a done_testing() call. While there, I also removed a few
exit(0) calls from individual tests making them more consistent.

LGTM, +1.

LGTM too.

+1. I was anoyed by the definitions especially when adding Non-windows
only tests.

Not tested, but +1. Could it be possible to backpatch that even if
this could be qualified as only cosmetic? Each time a test is
backpatched we need to tweak the number of tests planned, and that may
change slightly depending on the branch dealt with.

+1. I think that makes backpatching easier.

regards.

--
Kyotaro Horiguchi
NTT Open Source Software Center

#7Daniel Gustafsson
daniel@yesql.se
In reply to: Michael Paquier (#5)
Re: Replacing TAP test planning with done_testing()

On 10 Feb 2022, at 01:58, Michael Paquier <michael@paquier.xyz> wrote:

Daniel Gustafsson <daniel@yesql.se> writes:

The attached patch removes all Test::More planning and instead ensures that all
tests conclude with a done_testing() call.

Pushed to master now with a few more additional hunks fixing test changes that
happened between posting this and now.

Could it be possible to backpatch that even if
this could be qualified as only cosmetic? Each time a test is
backpatched we need to tweak the number of tests planned, and that may
change slightly depending on the branch dealt with.

I opted out of backpatching for now, to solicit more comments on that. It's
not a bugfix, but it's also not affecting the compiled bits that we ship, so I
think there's a case to be made both for and against a backpatch. Looking at
the oldest branch we support, it seems we've done roughly 25 changes to the
test plans in REL_10_STABLE over the years, so it's neither insignificant nor
an everyday activity. Personally I don't have strong opinions, what do others
think?

--
Daniel Gustafsson https://vmware.com/

#8Andres Freund
andres@anarazel.de
In reply to: Daniel Gustafsson (#7)
Re: Replacing TAP test planning with done_testing()

On 2022-02-11 21:04:53 +0100, Daniel Gustafsson wrote:

I opted out of backpatching for now, to solicit more comments on that. It's
not a bugfix, but it's also not affecting the compiled bits that we ship, so I
think there's a case to be made both for and against a backpatch. Looking at
the oldest branch we support, it seems we've done roughly 25 changes to the
test plans in REL_10_STABLE over the years, so it's neither insignificant nor
an everyday activity. Personally I don't have strong opinions, what do others
think?

+1 on backpatching. Backpatching tests now is less likely to cause conflicts,
but more likely to fail during tests.

#9Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#8)
Re: Replacing TAP test planning with done_testing()

Andres Freund <andres@anarazel.de> writes:

On 2022-02-11 21:04:53 +0100, Daniel Gustafsson wrote:

I opted out of backpatching for now, to solicit more comments on that. It's
not a bugfix, but it's also not affecting the compiled bits that we ship, so I
think there's a case to be made both for and against a backpatch. Looking at
the oldest branch we support, it seems we've done roughly 25 changes to the
test plans in REL_10_STABLE over the years, so it's neither insignificant nor
an everyday activity. Personally I don't have strong opinions, what do others
think?

+1 on backpatching. Backpatching tests now is less likely to cause conflicts,
but more likely to fail during tests.

If you've got the energy to do it, +1 for backpatching. I agree
with Michael's opinion that doing so will probably save us
future annoyance.

regards, tom lane

#10Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#9)
Re: Replacing TAP test planning with done_testing()

On 2022-Feb-11, Tom Lane wrote:

Andres Freund <andres@anarazel.de> writes:

+1 on backpatching. Backpatching tests now is less likely to cause conflicts,
but more likely to fail during tests.

If you've got the energy to do it, +1 for backpatching. I agree
with Michael's opinion that doing so will probably save us
future annoyance.

+1

--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/

#11Julien Rouhaud
rjuju123@gmail.com
In reply to: Alvaro Herrera (#10)
Re: Replacing TAP test planning with done_testing()

Le sam. 12 févr. 2022 à 04:28, Alvaro Herrera <alvherre@alvh.no-ip.org> a
écrit :

On 2022-Feb-11, Tom Lane wrote:

Andres Freund <andres@anarazel.de> writes:

+1 on backpatching. Backpatching tests now is less likely to cause

conflicts,

but more likely to fail during tests.

If you've got the energy to do it, +1 for backpatching. I agree
with Michael's opinion that doing so will probably save us
future annoyance.

+1

+1

Show quoted text