|
| 1 | +From scrappy@ki.net Wed Jul 31 18:12:17 1996 |
| 2 | +Status: RO |
| 3 | +X-Status: |
| 4 | +Received: from daemun.ilt.com ([204.247.102.21]) by ki.net (8.7.5/8.7.5) with ESMTP id SAA22940 for <scrappy@ki.net>; Wed, 31 Jul 1996 18:12:13 -0400 (EDT) |
| 5 | +Received: from venus (venus [199.26.203.13]) by daemun.ilt.com (8.7.5/8.7.3) with SMTP id PAA27566 for <scrappy@ki.net>; Wed, 31 Jul 1996 15:11:27 -0700 (PDT) |
| 6 | +Received: by venus (4.1/ILT-1.1) |
| 7 | + id AA01608; Wed, 31 Jul 96 15:11:22 PDT |
| 8 | +Date: Wed, 31 Jul 96 15:11:22 PDT |
| 9 | +From: drgeorge@ilt.com (Dr_George_D_Detlefsen) |
| 10 | +Message-Id: <9607312211.AA01608@venus> |
| 11 | +To: scrappy@ki.net |
| 12 | +Subject: src/test/regress/README |
| 13 | + |
| 14 | +src/test/regress/README |
| 15 | + |
| 16 | +Introduction |
| 17 | + |
| 18 | + The Postgres95 regression tests are a comprehensive set of tests for the |
| 19 | + SQL implementation embeded in Postgres95 developed by Jolly Chen and |
| 20 | + Andrew Yu. It tests standard SQL operations as well as the extensability |
| 21 | + capabilities of Postgres95. |
| 22 | + |
| 23 | +Preparation |
| 24 | + |
| 25 | + The regression test is invoked thru by the 'make' command which compiles |
| 26 | + a 'c' program with Postgres95 extension functions into a shared library |
| 27 | + in the 'obj' directory. Localised shell scripts are also created in |
| 28 | + the 'obj' directory. The 'expected.input' file is massaged into the |
| 29 | + 'obj/expected.out' file. The localization replaces macros in the source |
| 30 | + files with absolute pathnames and user names. |
| 31 | + |
| 32 | +The 'expected.input' file and the 'sample.regress.out' file |
| 33 | + |
| 34 | + The 'expected.input' file was created on a SPARC Solaris 2.4 system |
| 35 | + using the 'postgres5-1.02a5.tar.gz' source tree. It has been compared |
| 36 | + with a file created on an I386 Solaris 2.4 system and the differences |
| 37 | + are only in the floating point polygons in the 3rd digit to the right |
| 38 | + of the decimal point. (see below) |
| 39 | + |
| 40 | + The 'sample.regress.out' file is from the postgres-1.01 release |
| 41 | + constructed by Jolly Chen and is included here for reference. It may |
| 42 | + have been created on a DEC ALPHA machine as the 'Makefile.global' |
| 43 | + in the postgres-1.01 release has PORTNAME=alpha. |
| 44 | + |
| 45 | +Running the regression test |
| 46 | + |
| 47 | + Change directory to the regression test directory: |
| 48 | + |
| 49 | + cd ...../src/test/regress |
| 50 | + |
| 51 | + If you have prevously invoked the regression test, clean up the |
| 52 | + working directory with: |
| 53 | + |
| 54 | + make clean |
| 55 | + |
| 56 | + The regression test is invoked with the command: |
| 57 | + |
| 58 | + make all runtest |
| 59 | + |
| 60 | + Normally, the regression test should be run as the 'postgres' user as the |
| 61 | + 'src/test/regress' directory and sub-directories are owned by the |
| 62 | + 'postgres' user. If you run the regression test as another user the |
| 63 | + 'src/test/regress/obj' directory should be writeable to that user. |
| 64 | + |
| 65 | +Comparing expected/actual output |
| 66 | + |
| 67 | + The results are in the file 'obj/regress.out' which can be compared |
| 68 | + with the 'obj/expected.out' file using 'diff'. The files will NOT |
| 69 | + compare exactly. The following paragraphs attempt to explain the |
| 70 | + differences. |
| 71 | + |
| 72 | +OID differences |
| 73 | + |
| 74 | + There are several places where Postgres95 OID (object identifiers) appear |
| 75 | + in 'regress.out'. OID's are unique 32-bit integers which are generated |
| 76 | + by the Postgres95 backend whenever a table row is inserted or updated. |
| 77 | + If you run the regression test on a non-virgin database or run it multiple |
| 78 | + times, the OID's reported will have different values. |
| 79 | + |
| 80 | + The following SQL statements in 'regress.out' have shown this behavior: |
| 81 | + |
| 82 | + QUERY: SELECT user_relns() AS user_relns ORDER BY user_relns; |
| 83 | + |
| 84 | + The 'a,523676' row is composed from an OID. |
| 85 | + |
| 86 | +TIME differences |
| 87 | + |
| 88 | + Some of the tests involving date/time functions use the implicit |
| 89 | + time zone in effect at the time the regression test is run. In other |
| 90 | + tests the timezone to be inserted into the regression data base is |
| 91 | + explicitly specified. |
| 92 | + |
| 93 | + The 'expected.input' file was prepared in the 'US/Pacific' timezone |
| 94 | + so there may be differences where the 'expected.out' file has |
| 95 | + PST/PDT times and the 'regress.out' file has your local timezone. |
| 96 | + |
| 97 | +FLOATING POINT differences |
| 98 | + |
| 99 | + Some of the tests involve computing 64-bit (FLOAT8) number from table |
| 100 | + columns. Differences in results involving mathematical functions of |
| 101 | + FLOAT8 columns have been observed. These differences occur where |
| 102 | + different operating systems are used on the same platform ie: |
| 103 | + BSDI and SOLARIS on Intel/86, and where the same operating system is |
| 104 | + used used on different platforms, ie: SOLARIS on SPARC and Intel/86. |
| 105 | + |
| 106 | + Human eyeball comparison is needed to determine the real significance |
| 107 | + of these differences which are usually 10 places to the right of |
| 108 | + the decimal point. |
| 109 | + |
| 110 | +POLYGON differences |
| 111 | + |
| 112 | + Several of the tests involve operations on geographic date about the |
| 113 | + Oakland/Berkley CA street map. The map data is expressed as polygons |
| 114 | + whose verticies are represened as pairs of FLOAT8 numbers (decimal |
| 115 | + lattitude and longitude). Initially, some tables are created and |
| 116 | + loaded with geographic data, then some views are created which join |
| 117 | + two tables using the polygon intersection operator (##), then a select |
| 118 | + is done on the view. |
| 119 | + |
| 120 | + When comparing the results from different platforms, differences occur |
| 121 | + in the 2nd or 3rd place to the right of the decimal point. The SQL |
| 122 | + statements where these problems occur are the folowing: |
| 123 | + |
| 124 | + QUERY: SELECT * from street; |
| 125 | + QUERY: SELECT * from iexit; |
| 126 | + |
0 commit comments