On 10 August 2015 at 13:55, Robert Haas <robertmh...@gmail.com> wrote:

> On Mon, Aug 10, 2015 at 2:02 AM, Simon Riggs <si...@2ndquadrant.com>
> wrote:
> > On another review I suggested we add a function to core to allow it to be
> > used in regression tests. A long debate ensued, deciding that we must be
> > consistent and put diagnostic functions in contrib. My understanding is
> that
> > we are not allowed to write regression tests that use contrib modules,
> yet
> > the consistent place to put diagnostic functions is contrib - therefore,
> we
> > are never allowed to write tests utilizing diagnostic functions. We are
> > allowed to put modules for testing in another directory, but these are
> not
> > distributed to users so cannot be used for production diagnosis. Systemic
> > fail, advice needed.
>
> There are actually two ways to do this.
>
> One model is the dummy_seclabel module.  The build system arranges for
> that to be available when running the core regression tests, so they
> can use it.  And the dummy_seclabel test does.  There are actually a
> couple of other loadable modules that are used by the core regression
> tests in this kind of way (refint and autoinc, from contrib/spi).
>
> The other model is what I'll call the test_decoding model.  Since the
> core code can't be tested without a module, we have a module.  But
> then the tests are in the module's directory
> (contrib/test_decoding/{sql,expected}) not the core regression tests.
>
> In general, I have a mild preference for the second model.  It seems
> more scalable, and keeps the core tests quick to run, which is
> appropriate for more obscure tests that are unlikely to break very
> often.  But the first model can also be done, as show by the fact that
> we have in fact done it several times.
>

Neither of those uses a diagnostic function that also has value in
production environments - for logical decoding we added something to core
specifically to allow this pg_recvlogical.

Anyway, resolving this isn't important anymore because I wish to pursue a
different mechanism for freezing, but its possible I hit the same issue.

-- 
Simon Riggs                http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/>
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Reply via email to