Ensure that STDERR is empty during connect_ok
As part of the NSS patchset, quite a few bugs (and NSS quirks) were found by
inspecting STDERR in connect_ok and require it to be empty. This is not really
NSS specific, and could help find issues in other libraries as well so I
propose to apply it regardless of the fate of the NSS patchset.
(The change in the SCRAM tests stems from this now making all testruns have the
same number of tests. While I prefer to not plan at all and instead run
done_testing(), doing that consistently is for another patch, keeping this with
the remainder of the suites.)
--
Daniel Gustafsson https://vmware.com/
Attachments:
0001-Ensure-that-STDERR-is-empty-in-connect_ok-tests.patchapplication/octet-stream; name=0001-Ensure-that-STDERR-is-empty-in-connect_ok-tests.patch; x-unix-mode=0644Download+15-11
On 2022-Feb-02, Daniel Gustafsson wrote:
As part of the NSS patchset, quite a few bugs (and NSS quirks) were found by
inspecting STDERR in connect_ok and require it to be empty. This is not really
NSS specific, and could help find issues in other libraries as well so I
propose to apply it regardless of the fate of the NSS patchset.(The change in the SCRAM tests stems from this now making all testruns have the
same number of tests. While I prefer to not plan at all and instead run
done_testing(), doing that consistently is for another patch, keeping this with
the remainder of the suites.)
Since commit 405f32fc4960 we can rely on subtests for this, so perhaps
we should group all the tests in connect_ok() (including your new one)
into a subtest; then each connect_ok() calls count as a single test, and
we can add more tests in it without having to change the callers.
--
Álvaro Herrera 39°49'30"S 73°17'W — https://www.EnterpriseDB.com/
Al principio era UNIX, y UNIX habló y dijo: "Hello world\n".
No dijo "Hello New Jersey\n", ni "Hello USA\n".
Daniel Gustafsson <daniel@yesql.se> writes:
As part of the NSS patchset, quite a few bugs (and NSS quirks) were found by
inspecting STDERR in connect_ok and require it to be empty. This is not really
NSS specific, and could help find issues in other libraries as well so I
propose to apply it regardless of the fate of the NSS patchset.
+1
(The change in the SCRAM tests stems from this now making all testruns have the
same number of tests. While I prefer to not plan at all and instead run
done_testing(), doing that consistently is for another patch, keeping this with
the remainder of the suites.)
+1 to that too, counting the tests is a pretty useless exercise.
regards, tom lane
On 2 Feb 2022, at 16:01, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
On 2022-Feb-02, Daniel Gustafsson wrote:
As part of the NSS patchset, quite a few bugs (and NSS quirks) were found by
inspecting STDERR in connect_ok and require it to be empty. This is not really
NSS specific, and could help find issues in other libraries as well so I
propose to apply it regardless of the fate of the NSS patchset.(The change in the SCRAM tests stems from this now making all testruns have the
same number of tests. While I prefer to not plan at all and instead run
done_testing(), doing that consistently is for another patch, keeping this with
the remainder of the suites.)Since commit 405f32fc4960 we can rely on subtests for this, so perhaps
we should group all the tests in connect_ok() (including your new one)
into a subtest; then each connect_ok() calls count as a single test, and
we can add more tests in it without having to change the callers.
Disclaimer: longer term I would prefer to remove test plan counting like above
and Toms comment downthread. This is just to make this patch more palatable on
the way there.
Making this a subtest in order to not having to change the callers, turns the
patch into the attached. For this we must group the new test with one already
existing test, if we group more into it (which would make more sense) then we
need to change callers as that reduce the testcount across the tree.
This makes the patch smaller, but not more readable IMO (given that we can't
make it fully use subtests), so my preference is still the v1 patch.
Or did I misunderstand you?
--
Daniel Gustafsson https://vmware.com/
Attachments:
v2-0001-Ensure-that-STDERR-is-empty-in-connect_ok-tests.patchapplication/octet-stream; name=v2-0001-Ensure-that-STDERR-is-empty-in-connect_ok-tests.patch; x-unix-mode=0644Download+12-6
On 2022-Feb-02, Daniel Gustafsson wrote:
Making this a subtest in order to not having to change the callers, turns the
patch into the attached. For this we must group the new test with one already
existing test, if we group more into it (which would make more sense) then we
need to change callers as that reduce the testcount across the tree.
Well, it wasn't my intention that this patch would not have to change
the callers. What I was thinking about is making connect_ok() have a
subtest for *all* the tests it contains (and changing the callers to
match), so that *in the future* we can add more tests there without
having to change the callers *again*.
Or did I misunderstand you?
I think you did.
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"Cómo ponemos nuestros dedos en la arcilla del otro. Eso es la amistad; jugar
al alfarero y ver qué formas se pueden sacar del otro" (C. Halloway en
La Feria de las Tinieblas, R. Bradbury)
Tom Lane <tgl@sss.pgh.pa.us> writes:
Daniel Gustafsson <daniel@yesql.se> writes:
While I prefer to not plan at all and instead run done_testing(),
doing that consistently is for another patch, keeping this with the
remainder of the suites.+1 to that too, counting the tests is a pretty useless exercise.
Rather than waiting for Someone™ to find a suitably-shaped tuit to do a
whole sweep converting everything to done_testing(), I think we should
make a habit of converting individual scripts whenever a change breaks
the count.
- ilmari
On 2/2/22 11:01, Dagfinn Ilmari Mannsåker wrote:
Tom Lane <tgl@sss.pgh.pa.us> writes:
Daniel Gustafsson <daniel@yesql.se> writes:
While I prefer to not plan at all and instead run done_testing(),
doing that consistently is for another patch, keeping this with the
remainder of the suites.+1 to that too, counting the tests is a pretty useless exercise.
Rather than waiting for Someone™ to find a suitably-shaped tuit to do a
whole sweep converting everything to done_testing(), I think we should
make a habit of converting individual scripts whenever a change breaks
the count.
Or when anyone edits a script, even if the number of tests doesn't get
broken.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com
On 2022-Feb-02, Andrew Dunstan wrote:
On 2/2/22 11:01, Dagfinn Ilmari Mannsåker wrote:
Rather than waiting for Someone™ to find a suitably-shaped tuit to do a
whole sweep converting everything to done_testing(), I think we should
make a habit of converting individual scripts whenever a change breaks
the count.
+1.
Or when anyone edits a script, even if the number of tests doesn't get
broken.
Sure, if the committer is up to doing it, but let's not make that a hard
requirement for any commit that touches a test script.
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"Ni aún el genio muy grande llegaría muy lejos
si tuviera que sacarlo todo de su propio interior" (Goethe)
On Wed, Feb 02, 2022 at 04:42:09PM +0100, Daniel Gustafsson wrote:
Disclaimer: longer term I would prefer to remove test plan counting like above
and Toms comment downthread.
That would be really nice.
--
Michael
On Wed, Feb 02, 2022 at 03:40:39PM +0100, Daniel Gustafsson wrote:
As part of the NSS patchset, quite a few bugs (and NSS quirks) were found by
inspecting STDERR in connect_ok and require it to be empty. This is not really
NSS specific, and could help find issues in other libraries as well so I
propose to apply it regardless of the fate of the NSS patchset.
Sounds sensible from here. Thanks!
All the code paths seem to be covered, at quick glance.
--
Michael
On 6 Feb 2022, at 08:00, Michael Paquier <michael@paquier.xyz> wrote:
On Wed, Feb 02, 2022 at 03:40:39PM +0100, Daniel Gustafsson wrote:
As part of the NSS patchset, quite a few bugs (and NSS quirks) were found by
inspecting STDERR in connect_ok and require it to be empty. This is not really
NSS specific, and could help find issues in other libraries as well so I
propose to apply it regardless of the fate of the NSS patchset.Sounds sensible from here. Thanks!
All the code paths seem to be covered, at quick glance.
Applied, minus the changes to the test plans which are no longer required after
549ec201d6.
--
Daniel Gustafsson https://vmware.com/