| 포스트그레SQL | ||
|---|---|---|
| 이전 | 26장. 스포츠 토토 사이트 테스트 | 다음 |
“실패한” 테스트는 약간 다른 오류로 인해 실패했을 수 있습니다. 메시지, 수학 라이브러리 또는 출력 형식. 이것의 "실패" 유형은 Postgres에 문제가 있음을 나타내지 않습니다.
i686/Linux-ELF 플랫폼의 경우, 이것이 실패했기 때문에 테스트가 실패하지 않았습니다. v6.2.1 스포츠 토토 사이트 테스트 참조 플랫폼.
SPARC/Linux-ELF 플랫폼의 경우 970525 베타 버전 사용 Postgres v6.2에서 다음 테스트가 "실패했습니다": float8 및 기하학 부동 소수점의 사소한 정밀도 차이로 인해 "실패"했습니다. 숫자. select_views는 엄청나게 다른 출력을 생성하지만 차이점은 사소한 부동 소수점 차이로 인한 것입니다.
결론? 실패를 본다면 본질을 이해하려고 노력하십시오 차이점을 파악한 다음 해당 차이점이 영향을 미칠지 결정합니다. Postgres의 의도된 사용. 그러나 이는 다음과 같습니다. 현재까지 가장 견고한 Postgres 릴리스가 될 것 같습니다. v6.1 및 이전 버전의 많은 버그 수정 통합 Postgres는 한동안 성공적으로 사용되었습니다.
결과는 ./results 디렉토리의 파일에 있습니다. 이것들 결과는 ./expected 디렉터리의 결과와 비교할 수 있습니다. 'diff'를 사용합니다. 파일이 정확하게 비교되지 않을 수 있습니다. 다음 단락에서는 차이점을 설명하려고 시도합니다.
일부 회귀 테스트에 의도적인 잘못된 입력이 포함되어 있습니다 가치. 오류 메시지는 Postgres 코드 또는 호스트 플랫폼 시스템 루틴에서. 후자의 경우, 메시지는 플랫폼마다 다를 수 있지만 비슷한 내용을 반영해야 합니다. 정보. 이러한 메시지 차이로 인해 검사를 통해 검증할 수 있는 "실패한" 회귀 테스트입니다.
PostgreSQL OID(객체 식별자)는 'regress.out'에 나타납니다. OID는 고유한 32비트입니다. PostgreSQL 백엔드에서 생성되는 정수 테이블 행이 삽입되거나 업데이트됩니다. 회귀 테스트를 실행하면 비처녀 데이터베이스를 사용하거나 여러 번 실행하면 OID가 보고합니다. 다른 가치를 가지게 됩니다. 다음 SQL 문은 'misc.out'은 다음 동작을 보여줍니다: QUERY: SELECT user_relns() AS user_relns ORDER BY user_relns; 'a,523676' 행은 다음과 같이 구성됩니다. OID.
지원되는 많은 플랫폼에서 PostgreSQL이 믿도록 강제할 수 있습니다. 캘리포니아 버클리와 동일한 시간대에서 실행되고 있습니다. 회귀 테스트 실행 방법에 대한 자세한 내용은 섹션을 참조하세요. 만약에 시간대 환경을 PST8PDT로 명시적으로 설정하지 않은 경우 그러면 대부분의 날짜 및 시간 결과에 현지 시간이 반영됩니다. 영역을 지정하고 회귀 테스트에 실패합니다. 좀 있는 것 같더라구요 명시적으로 권장되는 구문을 허용하지 않는 시스템 현지 시간대 규칙을 설정합니다. 대중을 사용하는 일부 시스템 도메인 시간대 패키지는 1970년 이전 PDT에서 사소한 문제를 나타냅니다. 대신 PST로 표현합니다.
일부 테스트에는 64비트(float8) 숫자 계산이 포함됩니다. 테이블 열. 수학적 결과의 차이 float8 열의 기능이 관찰되었습니다. 이러한 차이점 동일한 운영체제에서 서로 다른 운영체제를 사용하는 경우 발생 플랫폼, 즉 Intel/86의 BSDI 및 SOLARIS, 그리고 동일한 경우 운영 체제는 다른 플랫폼에서 사용됩니다. 예: SOLARIS SPARC 및 Intel/86에서. 인간의 안구 비교가 필요합니다. 이러한 차이점의 실제 중요성을 결정합니다. 일반적으로 소수점 오른쪽 10자리입니다. 일부 시스템 메커니즘과 다르게 pow() 및 exp()의 신호 오류 현재 Postgres 코드에서는 예상됩니다.
몇 가지 테스트에는 지리적 날짜에 대한 작업이 포함됩니다. 오클랜드/버클리 CA 거리 지도. 지도 데이터는 다음과 같이 표현됩니다. 정점이 float8 숫자 쌍으로 표시되는 다각형 (십진수 위도 및 경도). 처음에는 일부 테이블이 지리 데이터를 생성하고 로드한 후 일부 보기는 다각형 교차점을 사용하여 두 테이블을 결합하는 생성 연산자(##)를 사용하면 보기에서 선택이 수행됩니다. 비교할 때 다른 플랫폼의 결과, 두 번째에서는 차이가 발생합니다. 또는 소수점 오른쪽 3자리. SQL 문 이러한 문제가 발생하는 곳은 다음과 같습니다.
질문: SELECT * from street;
쿼리: iexit에서 *를 선택하세요.
random.out에 의도된 테스트 사례가 하나 이상 있습니다. 무작위 결과를 생성합니다. 이로 인해 무작위가 실패하게 됩니다. 스포츠 토토 사이트 테스트. 타이핑
차이점 결과/random.out 예상/random.out다음에 대해 한 줄 또는 몇 줄의 차이점만 생성해야 합니다. 이 이유는 다르지만 다른 부동 소수점 차이점은 다음과 같습니다. 아키텍처에 따라 더 많은 차이가 발생할 수 있습니다. 릴리스 보기 아래 참고하세요.
그./예상/*.out파일은 다음과 같습니다 원래의 모놀리식에서 수정됨예상.입력파일 제공: Jolly Chen 외. 다양한 개발 과정에서 생성된 이러한 파일의 최신 버전 기계는 꼼꼼한(?) 점검을 거쳐 교체하였습니다. 많은 의 개발 시스템이 Unix OS 변형(FreeBSD, Linux 등)을 Ix86 하드웨어에서 사용할 수 있습니다. 원본예상.입력파일이 SPARC Solaris에서 생성되었습니다. 2.4 시스템을 사용하는postgres5-1.02a5.tar.gz소스 트리. 그것은 I386 Solaris 2.4 시스템에서 생성된 파일과 비교한 결과 차이점은 세 번째의 부동 소수점 다각형에만 있었습니다. 소수점 오른쪽 자리. (아래 참조) 원본sample.regress.out파일은 다음에서 가져왔습니다. Jolly Chen이 구성한 postgres-1.01 릴리스가 포함되어 있습니다. 참고로 여기. DEC ALPHA 시스템에서 생성되었을 수 있습니다. 으로Makefile.global에 postgres-1.01 릴리스에는 PORTNAME=alpha가 있습니다.
| 이전 | 홈 | 다음 |
| 스포츠 토토 사이트 테스트 절차 | 위로 | 출시 노트 |