Re: [HACKERS] psql & regress tests - Mailing list pgsql-hackers
From | wieck@debis.com (Jan Wieck) |
---|---|
Subject | Re: [HACKERS] psql & regress tests |
Date | |
Msg-id | m11odj9-0003kGC@orion.SAPserv.Hamburg.dsh.de Whole thread Raw |
In response to | Re: [HACKERS] psql & regress tests (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: [HACKERS] psql & regress tests
Re: [HACKERS] psql & regress tests |
List | pgsql-hackers |
Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > > Any modifications to shared pg_ tables would be a problem. Also, pg_log > > and pg_variable locking is not happening in there either, is it? > > Good point --- it wouldn't be just that database, but the whole > installation (data directory) that would have to be unused. You really > wouldn't dare even have a postmaster running, at least not in the same > data directory. But that could be made safe by using a nonstandard > location for the data directory for regression. > > However, this is all beside the main point: we want the regress tests > to run in an environment as close as possible to the way Postgres is > normally used. The more we hack up a special regress-test environment, > the less the tests reflect reality. My new script actually does a make POSTGRESDIR=somewhere_else install PATH="somewhere_else/bin:$PATH" Then it initializes a database below there and starts a postmaster with the resulting data directory, listening on port 65432. So I think it's very close to a real live setup, while another "production" running installation isn't affected at all. > Aside from the cross-backend synchronization issue, I forgot to point > out a really obvious benefit: doing it the current way allows the regress > tests to help check the backend's frontend communication code, and > libpq, and psql itself. We'd need some other way of testing all that > code if we switched to a standalone-backend regression test set. > > What I *would* like to see is more support for running regress tests on > a not-yet-installed build, so people can test a fresh build before they > blow away their working installation. This requires doing an initdb > into a temporary directory, starting a postmaster therein (using a > nonstandard port number), and running the tests there. This is doable > by hand, of course, but it's tedious and error-prone even for an expert; > I think it's out of the question for a novice installer. We ought to > offer a canned script to do it that way. Right, right, right - I'm on it. The ugly detail, I'm currently running into, is that there already seems to be a concurrency problem I discovered with my testing. Occationally I get this into the postmaster log for parallel executing tests: ERROR: Bad boolean external representation 'XXX' FATAL 1: SearchSysCache: recursive use of cache 10 FATAL 2: elog: error in postmaster or backend startup, giving up! pq_flush: send() failed: Broken pipe Server process (pid 9791) exited with status 512 at Fri Nov 19 03:17:09 1999 Terminating any active server processes... It happens during the first parallel group of 11 tests. Not allways, so it's timing critical. Outch. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #========================================= wieck@debis.com (Jan Wieck) #
pgsql-hackers by date: