1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
5 >Regression Tests</TITLE
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
10 HREF="mailto:pgsql-docs@postgresql.org"><LINK
12 TITLE="PostgreSQL 7.4.1 Documentation"
13 HREF="index.html"><LINK
15 TITLE="Server Administration"
16 HREF="admin.html"><LINK
19 HREF="wal-internals.html"><LINK
21 TITLE="Test Evaluation"
22 HREF="regress-evaluation.html"><LINK
25 HREF="stylesheet.css"><META
27 CONTENT="2003-12-22T03:48:47"></HEAD
33 SUMMARY="Header navigation table"
43 >PostgreSQL 7.4.1 Documentation</TH
51 HREF="wal-internals.html"
73 HREF="client-interfaces.html"
81 HREF="regress-evaluation.html"
96 >Chapter 26. Regression Tests</H1
102 >Table of Contents</B
106 HREF="regress.html#REGRESS-RUN"
107 >Running the Tests</A
111 HREF="regress-evaluation.html"
118 HREF="regress-evaluation.html#AEN19742"
119 >Error message differences</A
123 HREF="regress-evaluation.html#AEN19747"
124 >Locale differences</A
128 HREF="regress-evaluation.html#AEN19760"
129 >Date and time differences</A
133 HREF="regress-evaluation.html#AEN19781"
134 >Floating-point differences</A
138 HREF="regress-evaluation.html#AEN19795"
139 >Row ordering differences</A
143 HREF="regress-evaluation.html#AEN19806"
153 HREF="regress-platform.html"
154 >Platform-specific comparison files</A
165 > The regression tests are a comprehensive set of tests for the SQL
166 implementation in <SPAN
170 standard SQL operations as well as the extended capabilities of
178 > 6.1 onward, the regression
179 tests are current for every official release.
187 >26.1. Running the Tests</A
190 > The regression test can be run against an already installed and
191 running server, or using a temporary installation within the build
192 tree. Furthermore, there is a <SPAN
199 > mode for running the tests. The
200 sequential method runs each test script in turn, whereas the
201 parallel method starts up multiple server processes to run groups
202 of tests in parallel. Parallel testing gives confidence that
203 interprocess communication and locking are working correctly. For
204 historical reasons, the sequential test is usually run against an
205 existing installation and the parallel method against a temporary
206 installation, but there are no technical reasons for this.
209 > To run the regression tests after building but before installation,
215 in the top-level directory. (Or you can change to
218 >src/test/regress</TT
219 > and run the command there.)
220 This will first build several auxiliary files, such as
222 user-defined trigger functions, and then run the test driver
223 script. At the end you should see something like
227 CLASS="COMPUTEROUTPUT"
228 >======================
230 ======================</SAMP
233 or otherwise a note about which tests failed. See <A
234 HREF="regress-evaluation.html"
239 > Because this test method runs a temporary server, it will not work
240 when you are the root user (since the server will not start as root).
241 If you already did the build as root, you do not have to start all
242 over. Instead, make the regression test directory writable by
243 some other user, log in as that user, and restart the tests.
252 >chmod -R a+w src/test/regress</KBD
259 >chmod -R a+w contrib/spi</KBD
275 >top-level build directory</VAR
286 (The only possible <SPAN
288 >"security risk"</SPAN
290 users might be able to alter the regression test results behind
291 your back. Use common sense when managing user permissions.)
294 > Alternatively, run the tests after installation.
297 > The parallel regression test starts quite a few processes under your
298 user ID. Presently, the maximum concurrency is twenty parallel test
299 scripts, which means sixty processes: there's a server process, a
303 >, and usually a shell parent process for the
307 > for each test script.
308 So if your system enforces a per-user limit on the number of processes,
309 make sure this limit is at least seventy-five or so, else you may get
310 random-seeming failures in the parallel test. If you are not in
311 a position to raise the limit, you can cut down the degree of parallelism
315 > parameter. For example,
318 >gmake MAX_CONNECTIONS=10 check</PRE
320 runs no more than ten tests concurrently.
323 > On some systems, the default Bourne-compatible shell
327 >) gets confused when it has to manage
328 too many child processes in parallel. This may cause the parallel
329 test run to lock up or fail. In such cases, specify a different
330 Bourne-compatible shell on the command line, for example:
333 >gmake SHELL=/bin/ksh check</PRE
335 If no non-broken shell is available, you may be able to work around the
336 problem by limiting the number of connections, as shown above.
339 > To run the tests after installation (see <A
340 HREF="installation.html"
343 initialize a data area and start the
344 server, as explained in <A
350 >gmake installcheck</PRE
352 The tests will expect to contact the server at the local host and the
353 default port number, unless directed otherwise by <TT
360 environment variables.
369 SUMMARY="Footer navigation table"
380 HREF="wal-internals.html"
398 HREF="regress-evaluation.html"