Noah, On Wednesday, April 27, 2016, Noah Misch <n...@leadboat.com> wrote:
> A later thought: > > On Mon, Apr 25, 2016 at 12:39:09AM -0400, Stephen Frost wrote: > > src/bin/pg_dump: make check > > > > implemented using the TAP testing system. There are a total of 360 > > tests, generally covering: > > > > Various invalid sets of command-line options. > > > > Valid command-line options (generally independently used): > > > > (no options- defaults) > > --clean > > --clean --if-exists > > --data-only > > --format=c (tested with pg_restore) > > --format=d (tested with pg_restore) > > --format=t (tested with pg_restore) > > --format=d --jobs=2 (tested with pg_restore) > > --exclude-schema > > --exclude-table > > --no-privileges > > --no-owner > > --schema > > --schema-only > > > > Note that this is only including tests for basic schemas, tables, data, > > and privileges, so far. I believe it's pretty obvious that we want to > > include all object types and include testing of extensions, I just > > haven't gotten there yet and figured now would be a good time to solicit > > feedback on the approach I've used. > > > > I'm not sure how valuable it is to test all the different combinations > > of command-line options, though clearly some should be tested (eg: > > include-schema, exclude table in that schema, and similar cases). > > You mention that you test valid options independently. Keep an eye out for > good opportunities to save runtime by testing multiple options per > invocation. > To give one example, --exclude-table seems fairly independent of --format; > maybe those could test as a group. That complicates the suite, but saving > ten > or more seconds might justify the complexity. > That thought had occurred to me also and I began combining some options, though I could probably do more to reduce the runtime: The current challenge I've been trying to find a solution to is testing the extension handling. Only core extensions (plpgsql, plperl, etc) are available when the TAP tests are running for pg_dump, it seems. I certainly don't want to add a testing extension in such a way that it would get installed for users, but it doesn't seem obvious how to create an extension from another directory or to even find the directory where I could write the control and SQL files into to use. Any thoughts on that would certainly be welcome. Thanks! Stephen