Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit e68abfb

Browse files
committed
Update SGML docs with some changes I made to test/regress/README
many moons ago, but forgot to put here.
1 parent f9e497d commit e68abfb

File tree

1 file changed

+85
-96
lines changed

1 file changed

+85
-96
lines changed

doc/src/sgml/regress.sgml

Lines changed: 85 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -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 is done 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 the postmaster with system time zone
86+
set to PST, but this is no 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>
155152
For 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-
gmake runtest
199+
gmake clean
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
361349
columns. 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.
367353
Human eyeball comparison is needed to determine the real significance
368354
of these differences which are usually 10 places to the right of
369355
the decimal point.
370-
356+
</Para>
357+
358+
<Para>
371359
Some systems signal errors from pow() and exp() differently from
372360
the mechanism expected by the current Postgres code.
373361
</Para>
@@ -403,7 +391,8 @@ the following:
403391

404392
<Para>
405393
There 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.
407396
Typing
408397
<ProgramListing>
409398
diff results/random.out expected/random.out

0 commit comments

Comments
 (0)