On Tue, 1 Oct 2019 at 02:08, Robert Haas <robertmh...@gmail.com> wrote:
> > Why does create_logical_slot_on_standby include sleep(1)? Yeah, we really need to avoid sleeps in regression tests. If you need to wait, use a DO block that polls the required condition, and wrap the sleep in that with a much longer total timeout. In BDR and pglogical's pg_regress tests I've started to use a shared prelude that sets a bunch of psql variables that I use as helpers for this sort of thing, so I can just write :wait_slot_ready instead of repeating the same SQL command a pile of times across the tests. That reminds me: I'm trying to find the time to write a couple of patches to pg_regress to help make life easier too: - Prelude and postscript .psql files that run before/after every test step to set variables, do cleanup etc - Test header comment that can be read by pg_regress to set a per-test timeout - Allow pg_regress to time out individual tests and continue with the next test - Test result postprocessing by script, where pg_regress writes the raw test results then postprocesses it with a script before diffing the postprocessed output. This would allow us to have things like /* BEGIN_TESTIGNORE */ ... /* END_TESTIGNORE */ blocks for diagnostic output that we want available but don't want to be part of actual test output. Or filter out NOTICEs that vary in output. That sort of thing. -- Craig Ringer http://www.2ndQuadrant.com/ 2ndQuadrant - PostgreSQL Solutions for the Enterprise