@@ -82,15 +82,15 @@ The runtime path is /usr/local/pgsql (other paths are possible).
8282</Para>
8383
8484<Para>
85- The postmaster should be invoked with the system time zone set for
86- Berkeley, California. This isdone automatically by the regression
87- test script. However, it does require machine support for the PST8PDT
88- time zone.
89- </Para>
90-
91- <Para>
92- To verify that your machine does have this support, type
93- the following:
85+ It was formerly necessary to run thepostmaster with system time zone
86+ set to PST, but this isno longer required. You can run the regression
87+ tests under your normal postmaster configuration. The test script will
88+ set the PGTZ environment variable to ensure that timezone-dependent tests
89+ produce the expected results. However, your system must provide
90+ library support for the PST8PDT time zone, or the timezone-dependent
91+ tests will fail.
92+ To verify that your machine does have this support, type
93+ the following:
9494<ProgramListing>
9595 setenv TZ PST8PDT
9696 date
@@ -147,36 +147,15 @@ the following:
147147 like <FileName>ps</FileName> and <FileName>tar</FileName> vary wildly on what options you should use on each
148148 platform. <Emphasis>Use common sense</Emphasis> before typing in these commands.
149149 </Para>
150-
151- <Procedure>
152- <Title><ProductName>Postgres</ProductName> Regression Configuration</Title>
153150
154151 <Para>
155152For a fresh install or upgrading from previous releases of
156153<ProductName>Postgres</ProductName>:
157154 </Para>
158-
159- <Step Performance="required">
160- <Para>
161- Build the regression test. Type
162- <ProgramListing>
163- cd /usr/src/pgsql/src/test/regress
164- gmake all
165- </ProgramListing>
166- </Para>
167- </Step>
168-
169- <Step Performance="optional">
170- <Para>
171- If you have prevously invoked the regression test, clean up the
172- working directory with:
173-
174- <ProgramListing>
175- cd /usr/src/pgsql/src/test/regress
176- make clean
177- </ProgramListing>
178- </para>
179- </step>
155+
156+ <Procedure>
157+ <Title><ProductName>Postgres</ProductName> Regression Configuration</Title>
158+
180159 <Step Performance="required">
181160<Para>
182161 The file /usr/src/pgsql/src/test/regress/README has detailed
@@ -210,21 +189,41 @@ the following:
210189</Para>
211190 </Step>
212191
213- <Step Performance="required ">
192+ <Step Performance="optional ">
214193<Para>
215- Run the regression tests. Type
194+ If you have previously invoked the regression test, clean up the
195+ working directory with:
216196
217197 <ProgramListing>
218198 cd /usr/src/pgsql/src/test/regress
219- gmakeruntest
199+ gmakeclean
220200 </ProgramListing>
221- </Para>
222-
201+ </para>
223202<Para>
224-
225203 You do not need to type "gmake clean" if this is the first time you
226204 are running the tests.
227205</Para>
206+ </step>
207+
208+
209+ <Step Performance="required">
210+ <Para>
211+ Build the regression test. Type
212+ <ProgramListing>
213+ cd /usr/src/pgsql/src/test/regress
214+ gmake all
215+ </ProgramListing>
216+ </Para>
217+ </Step>
218+
219+ <Step Performance="required">
220+ <Para>
221+ Run the regression tests. Type
222+ <ProgramListing>
223+ cd /usr/src/pgsql/src/test/regress
224+ gmake runtest
225+ </ProgramListing>
226+ </Para>
228227 </Step>
229228
230229 <Step Performance="required">
@@ -245,61 +244,44 @@ the following:
245244
246245 <Step Performance="required">
247246<Para>
248- After running the tests, type
247+ After running the tests and examining the results , type
249248 <ProgramListing>
250249 destroydb regression
251250 cd /usr/src/pgsql/src/test/regress
252251 gmake clean
253252 </ProgramListing>
253+ to recover the temporary disk space used by the tests.
254254</Para>
255255 </Step>
256256 </procedure>
257257 </Sect1>
258258
259259 <Sect1>
260260 <Title>Regression Analysis</Title>
261-
262- <Para>
263- <Quote>Failed</Quote> tests may have failed due to slightly different error messages,
264- math libraries, or output formatting.
261+
262+ <Para>
263+ The results are in files in the ./results directory. These results
264+ can be compared with results in the ./expected directory using 'diff'.
265+ (The test script does this for you, and leaves the differences
266+ in ./regression.diffs.)
267+ </Para>
268+
269+ <Para>
270+ The files might not compare exactly. The test script will report
271+ any difference as a "failure", but the difference might be due
272+ to small cross-system differences in error message wording,
273+ math library behavior, etc.
265274 "Failures" of this type do not indicate a problem with
266275 <ProductName>Postgres</ProductName>.
267276 </Para>
268277
269278 <Para>
270- For a i686/Linux-ELF platform, no tests failed since this is the
271- v6.2.1 regression testing reference platform.
272- </Para>
273-
274- <Para>
275- For the SPARC/Linux-ELF platform, using the 970525 beta version of
276- <ProductName>Postgres</ProductName> v6.2 the following tests "failed":
277- float8 and geometry "failed" due to minor precision differences in
278- floating point numbers. select_views produces massively different output,
279- but the differences are due to minor floating point differences.
280- </Para>
281-
282- <Para>
283- Conclusion? If you do see failures, try to understand the nature of
284- the differences and then decide if those differences will affect your
285- intended use of <ProductName>Postgres</ProductName>. However, keep in mind that this is likely
286- to be the most solid release of <ProductName>Postgres</ProductName> to date, incorporating many
287- bug fixes from v6.1, and that previous versions of <ProductName>Postgres</ProductName> have been
288- in use successfully for some time now.
279+ Thus, it is necessary to examine the actual differences for each
280+ "failed" test to determine whether there is really a problem.
281+ The following paragraphs attempt to provide some guidance in
282+ determining whether a difference is significant or not.
289283 </Para>
290284
291- <Sect2>
292- <Title>Comparing expected/actual output</Title>
293-
294- <Para>
295- The results are in files in the ./results directory. These results
296- can be compared with results in the ./expected directory using 'diff'.
297- The files might not compare exactly. The following paragraphs attempt
298- to explain the differences.
299- </Para>
300-
301- </Sect2>
302-
303285 <Sect2>
304286 <Title>Error message differences</Title>
305287
@@ -337,18 +319,24 @@ the following:
337319 <Title>Date and time differences</Title>
338320
339321 <Para>
340- On many supported platforms, you can force PostgreSQL to believe that it
341- is running in the same time zone as Berkeley, California. See details in
342- the section on how to run the regression tests.
343-
344- If you do not explicitly set your time zone environment to PST8PDT, then
345- most of the date and time results will reflect your local time zone and
346- will fail the regression testing.
347-
348- There appears to be some systems which do not accept the recommended syntax
349- for explicitly setting the local time zone rules. Some systems using the
350- public domain time zone package exhibit minor problems with pre-1970 PDT
351- times, representing them in PST instead.
322+ Most of the date and time results are dependent on timezone environment.
323+ The reference files are generated for timezone PST8PDT (Berkeley,
324+ California) and there will be apparent failures if the tests are not
325+ run with that timezone setting. The regression test driver sets
326+ environment variable PGTZ to PST8PDT to ensure proper results.
327+ </Para>
328+
329+ <Para>
330+ There appear to be some systems which do not accept the recommended syntax
331+ for explicitly setting the local time zone rules; you may need to use
332+ a different PGTZ setting on such machines.
333+ </Para>
334+
335+ <Para>
336+ Some systems using older timezone libraries fail to apply daylight-savings
337+ corrections to pre-1970 dates, causing pre-1970 PDT times to be displayed
338+ in PST instead. This will result in localized differences in the test
339+ results.
352340 </Para>
353341
354342 </Sect2>
@@ -357,17 +345,17 @@ the following:
357345 <Title>Floating point differences</Title>
358346
359347 <Para>
360- Some of the tests involve computing 64-bit (<Type>float8</Type>)number from table
348+ Some of the tests involve computing 64-bit (<Type>float8</Type>)numbers from table
361349columns. Differences in results involving mathematical functions of
362- <Type>float8</Type> columns have been observed. These differences occur where
363- different operating systems are used on the same platform ie:
364- BSDI and SOLARIS on Intel/86, and where the same operating system is
365- used used on different platforms, ie: SOLARIS on SPARC and Intel/86.
366-
350+ <Type>float8</Type> columns have been observed. The float8
351+ and geometry tests are particularly prone to small differences
352+ across platforms.
367353Human eyeball comparison is needed to determine the real significance
368354of these differences which are usually 10 places to the right of
369355the decimal point.
370-
356+ </Para>
357+
358+ <Para>
371359Some systems signal errors from pow() and exp() differently from
372360the mechanism expected by the current Postgres code.
373361 </Para>
@@ -403,7 +391,8 @@ the following:
403391
404392 <Para>
405393There is at least one test case in random.out which is intended to produce
406- random results. This causes random to fail the regression testing.
394+ random results. This causes random to fail the regression testing
395+ once in a while.
407396Typing
408397<ProgramListing>
409398 diff results/random.out expected/random.out