]> granicus.if.org Git - postgresql/commit
Improve test coverage for LISTEN/NOTIFY.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 28 Jul 2019 16:02:27 +0000 (12:02 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 28 Jul 2019 16:02:27 +0000 (12:02 -0400)
commitb10f40bf0e4516d7832db8ccbe5f76319ad08682
treed8cdc0e91e1b7f2428b69f368806d1543bea606e
parent44460d7017cde005d7a2e246db0b32375bfec15d
Improve test coverage for LISTEN/NOTIFY.

We had no actual end-to-end test of NOTIFY message delivery.  In the
core async.sql regression test, testing this is problematic because psql
traditionally prints the PID of the sending backend, making the output
unstable.  We also have an isolation test script, but it likewise
failed to prove that delivery worked, because isolationtester.c had
no provisions for detecting/reporting NOTIFY messages.

Hence, add such provisions to isolationtester.c, and extend
async-notify.spec to include direct tests of basic NOTIFY functionality.

I also added tests showing that NOTIFY de-duplicates messages normally,
but not across subtransaction boundaries.  (That's the historical
behavior since we introduced subtransactions, though perhaps we ought
to change it.)

Patch by me, with suggestions/review by Andres Freund.

Discussion: https://postgr.es/m/31304.1564246011@sss.pgh.pa.us
src/test/isolation/expected/async-notify.out
src/test/isolation/isolationtester.c
src/test/isolation/specs/async-notify.spec