31.1. 테스트 윈 토토#

회귀 테스트는 이미 설치되어 윈 토토 중인 서버에 대해 윈 토토하거나 빌드 트리 내의 임시 설치를 사용하여 윈 토토할 수 있습니다. 게다가, a병렬그리고순차테스트 윈 토토 모드입니다. 순차 방법은 각 테스트 스크립트를 단독으로 실행하는 반면, 병렬 방법은 여러 서버 프로세스를 시작하여 테스트 그룹을 병렬로 실행합니다. 병렬 테스트는 프로세스 간 통신 및 잠금이 올바르게 작동하고 있다는 확신을 더해줍니다. 일부 테스트는 다음 환경에서도 순차적으로 실행될 수 있습니다.병렬테스트에서 필요한 경우 모드.

31.1.1. 임시 설치에 대한 테스트 윈 토토#

빌드 후 설치 전에 병렬 회귀 테스트를 실행하려면 다음을 입력하십시오:

확인하세요

최상위 디렉토리에 있습니다. (또는 다음으로 변경할 수 있습니다.src/테스트/회귀그리고 거기에서 명령을 실행합니다.) 병렬로 실행되는 테스트에는 접두사가 붙습니다+, 순차적으로 실행되는 테스트에는라는 접두사가 붙습니다.-. 마지막에는 다음과 같은 내용이 표시됩니다.

# 213개의 테스트가 모두 통과되었습니다.

또는 어떤 테스트가 실패했는지에 대한 메모입니다. 참조PostgreSQL : 문서 : 17 : 31.2. 사설 토토 사이트 평가다음을 가정하기 전에 a실패심각한 문제를 나타냅니다.

이 테스트 방법은 임시 서버를 윈 토토하기 때문에 루트 사용자로 빌드를 수행한 경우 서버가 루트로 시작되지 않으므로 작동하지 않습니다. 권장되는 절차는 루트로 빌드를 수행하거나 설치 완료 후 테스트를 수행하는 것이 아닙니다.

구성한 경우PostgreSQL오래된 장소에 설치하기 위해PostgreSQL설치가 이미 존재하며 수행 중입니다.확인하세요새 버전을 설치하기 전에 새 프로그램이 이미 설치된 공유 라이브러리를 사용하려고 시도하기 때문에 테스트가 실패할 수 있습니다. (일반적인 증상은 정의되지 않은 기호에 대한 불만입니다.) 이전 설치를 덮어쓰기 전에 테스트를 실행하려면 다음을 사용하여 빌드해야 합니다.구성 --disable-rpath. 그러나 최종 설치에는 이 옵션을 사용하지 않는 것이 좋습니다.

병렬 회귀 테스트는 귀하의 사용자 ID로 꽤 많은 프로세스를 시작합니다. 현재 최대 동시성은 20개의 병렬 테스트 스크립트입니다. 이는 40개의 프로세스를 의미합니다. 서버 프로세스가 있고 apsql각 테스트 스크립트에 대한 프로세스입니다. 따라서 시스템이 프로세스 수에 대해 사용자별 제한을 적용하는 경우 이 제한이 최소한 50개 정도인지 확인하십시오. 그렇지 않으면 병렬 테스트에서 무작위로 보이는 오류가 발생할 수 있습니다. 제한을 늘릴 수 없는 경우에는 다음을 설정하여 병렬 처리 수준을 줄일 수 있습니다.MAX_CONNECTIONS매개변수. 예를 들면:

MAX_CONNECTIONS=10 확인을 하세요

동시에 10개 이하의 테스트를 윈 토토합니다.

31.1.2. 기존 설치에 대해 테스트 윈 토토#

설치 후 테스트를 윈 토토하려면(참조스포츠 토토 결과 : 문서 : 17 : 17 장. 소스 코드에서 설치), 설명된 대로 데이터 디렉터리를 초기화하고 서버를 시작합니다.스포츠 토토 결과 : 문서 : 17 : 18 장 서버 설정 및 작동, 그런 다음 다음을 입력하세요.

설치 확인 수행

또는 병렬 테스트의 경우:

make installcheck-parallel

테스트에서는 달리 지시하지 않는 한 로컬 호스트 및 기본 포트 번호에서 서버에 접속할 것으로 예상합니다.PGHOST그리고PGPORT환경 변수. 테스트는 다음과 같은 데이터베이스에서 실행됩니다.회귀; 이 이름의 기존 데이터베이스는 모두 삭제됩니다.

또한 테스트는 역할, 테이블스페이스 및 구독과 같은 클러스터 전체 개체를 일시적으로 생성합니다. 이러한 개체의 이름은 다음으로 시작됩니다.회귀_. 사용에 주의하세요설치확인그런 식으로 명명된 실제 전역 개체가 있는 설치 모드입니다.

31.1.3. 추가 테스트 스위트#

확인하세요그리고설치 확인 수행명령은 다음만 실행합니다.코어회귀 테스트: 내장 기능을 테스트합니다.포스트그레SQL서버. 소스 배포판에는 많은 추가 테스트 모음이 포함되어 있으며 대부분은 선택적 절차 언어와 같은 추가 기능과 관련이 있습니다.

핵심 테스트를 포함하여 빌드하도록 선택한 모듈에 적용 가능한 모든 테스트 모음을 실행하려면 빌드 트리 상단에 다음 명령 중 하나를 입력하십시오.

세계를 확인하세요
installcheck-world를 만드세요

이 명령은 이전에 설명한 대로 각각 임시 서버 또는 이미 설치된 서버를 사용하여 테스트를 실행합니다.확인하세요그리고설치 확인 수행. 기타 고려 사항은 각 방법에 대해 앞서 설명한 것과 동일합니다. 참고하세요세계를 확인하세요테스트된 각 모듈에 대해 별도의 인스턴스(임시 데이터 디렉터리)를 구축하므로 다음보다 더 많은 시간과 디스크 공간이 필요합니다.make installcheck-world.

여러 개의 CPU 코어가 있고 엄격한 운영 체제 제한이 없는 최신 시스템에서는 병렬 처리를 통해 작업 속도를 훨씬 더 빠르게 만들 수 있습니다. 대부분의 PostgreSQL 개발자가 모든 테스트를 실행하기 위해 실제로 사용하는 방법은 다음과 같습니다.

make check-world -j8 /dev/null

-j사용 가능한 코어 수에 가깝거나 약간 더 많이 제한합니다. 폐기하는 중stdout단순히 성공을 확인하고 싶을 때 흥미롭지 않은 잡담을 제거합니다. (실패한 경우에는stderr메시지는 일반적으로 더 자세히 살펴볼 곳을 결정하는 데 충분합니다.)

또는 다음을 입력하여 개별 테스트 모음을 실행할 수 있습니다.확인하세요또는설치 확인 수행빌드 트리의 해당 하위 디렉토리에 있습니다. 명심하세요설치 확인 수행코어 서버뿐만 아니라 관련 모듈도 설치했다고 가정합니다.

이 방법으로 호출할 수 있는 추가 테스트는 다음과 같습니다.

  • 선택적 절차적 언어에 대한 회귀 테스트입니다. 다음 위치에 있습니다.src/pl.

  • 회귀 테스트기여모듈, 아래에 위치기여. 전부는 아님기여모듈에는 테스트가 있습니다.

  • 다음 위치에 있는 인터페이스 라이브러리에 대한 회귀 테스트src/인터페이스/libpq/테스트그리고src/인터페이스/ecpg/테스트.

  • 핵심 지원 인증 방법에 대한 테스트, 위치:src/테스트/인증. (추가 인증 관련 테스트는 아래를 참고하세요.)

  • 다음 위치에 있는 동시 세션의 동작을 강조하는 테스트src/테스트/격리.

  • 충돌 복구 및 물리적 복제 테스트, 위치:src/테스트/복구.

  • 논리적 복제 테스트, 위치:src/테스트/구독.

  • 아래에 있는 클라이언트 프로그램 테스트src/bin.

사용 시설치확인모드에서 이 테스트는 이름에 다음이 포함된 테스트 데이터베이스를 생성하고 파괴합니다.회귀, 예를 들어pl_regression또는contrib_regression. 사용에 주의하세요설치확인그런 식으로 명명된 비테스트 데이터베이스가 있는 설치 모드입니다.

이러한 보조 테스트 모음 중 일부는 다음에 설명된 TAP 인프라를 사용합니다.PostgreSQL : 문서 : 17 : 31.4. 탭 스포츠 토토. TAP 기반 테스트는 PostgreSQL이 옵션으로 구성된 경우에만 실행됩니다.--탭 테스트 활성화. 개발 시 권장사항이나 적합한 Perl 설치가 없는 경우 생략 가능합니다.

일부 테스트 모음은 다중 사용자 시스템에서 실행하기에 안전하지 않거나 특수 소프트웨어가 필요하거나 리소스 집약적이기 때문에 기본적으로 실행되지 않습니다. 다음을 설정하여 추가로 실행할 테스트 모음을 결정할 수 있습니다.만들다또는 환경 변수PG_TEST_EXTRA공백으로 구분된 목록으로, 예:

check-world PG_TEST_EXTRA='kerberos ldap ssl load_balance libpq_encryption'

현재 다음 값이 지원됩니다:

케르베로스

아래에서 테스트 스위트를 윈 토토합니다src/test/kerberos. 이를 위해서는 MIT Kerberos 설치가 필요하며 TCP/IP 청취 소켓이 열립니다.

ldap

아래에서 테스트 스위트를 윈 토토합니다src/테스트/ldap. 이를 위해서는오픈LDAP설치하고 TCP/IP 청취 소켓을 엽니다.

ssl

아래에서 테스트 스위트를 윈 토토합니다src/테스트/ssl. 그러면 TCP/IP 청취 소켓이 열립니다.

load_balance

테스트 윈 토토src/interfaces/libpq/t/004_load_balance_dns.pl. 이를 위해서는 시스템 편집이 필요합니다.호스트파일을 생성하고 TCP/IP 청취 소켓을 엽니다.

libpq_encryption

테스트 윈 토토src/interfaces/libpq/t/005_negotiate_encryption.pl. 그러면 TCP/IP 청취 소켓이 열립니다. 만일PG_TEST_EXTRA또한 포함케르베로스, MIT Kerberos 설치가 필요한 추가 테스트가 활성화되었습니다.

wal_consistency_checking

용도wal_consistency_checking=all아래에서 특정 테스트를 윈 토토하는 동안src/테스트/복구. 리소스를 많이 사용하기 때문에 기본적으로 활성화되지 않습니다.

xid_wraparound

아래에서 테스트 스위트를 윈 토토합니다src/test/modules/xid_wraparound. 리소스를 많이 사용하기 때문에 기본적으로 활성화되지 않습니다.

현재 빌드 구성에서 지원되지 않는 기능에 대한 테스트는 언급된 경우에도 실행되지 않습니다.PG_TEST_EXTRA.

또한 테스트가 있습니다src/테스트/모듈다음에 의해 실행됩니다세계를 확인하세요그러나 그 사람은 아님make installcheck-world. 이는 비프로덕션 확장을 설치하거나 프로덕션 설치에 바람직하지 않은 것으로 간주되는 기타 부작용이 있기 때문입니다. 당신은 사용할 수 있습니다설치하기그리고설치 확인 수행원하는 경우 해당 하위 디렉터리 중 하나에 있지만 테스트 서버가 아닌 경우에는 그렇게 하지 않는 것이 좋습니다.

31.1.4. 로케일 및 인코딩#

기본적으로 임시 설치를 사용하는 테스트는 현재 환경에 정의된 로케일과 해당 데이터베이스 인코딩을 사용하여 결정됩니다.initdb. 적절한 환경 변수를 설정하여 다양한 로케일을 테스트하는 것이 유용할 수 있습니다. 예를 들면 다음과 같습니다.

확인 LANG=C
LC_COLLATE=en_US.utf8 LC_CTYPE=fr_CA.utf8을 확인하세요.

구현상의 이유로 설정LC_ALL이 목적으로는 작동하지 않습니다. 다른 모든 로케일 관련 환경 변수는 작동합니다.

기존 설치에 대해 테스트할 때 로케일은 기존 데이터베이스 클러스터에 의해 결정되며 테스트 윈 토토을 위해 별도로 설정할 수 없습니다.

변수를 설정하여 명시적으로 데이터베이스 인코딩을 선택할 수도 있습니다.인코딩, 예:

LANG=C ENCODING=EUC_JP를 확인하세요.

이런 방식으로 데이터베이스 인코딩을 설정하는 것은 일반적으로 로캘이 C인 경우에만 의미가 있습니다. 그렇지 않으면 인코딩이 로케일에서 자동으로 선택되며 로케일과 일치하지 않는 인코딩을 지정하면 오류가 발생합니다.

임시 또는 기존 설치에 대한 테스트를 위해 데이터베이스 인코딩을 설정할 수 있지만 후자의 경우 설치 로케일과 호환되어야 합니다.

31.1.5. 사용자 정의 서버 설정#

테스트 모음을 실행할 때 사용자 정의 서버 설정을 사용하는 방법에는 여러 가지가 있습니다. 이는 추가 로깅을 활성화하거나 리소스 제한을 조정하거나 다음과 같은 추가 런타임 검사를 활성화하는 데 유용할 수 있습니다.debug_discard_caches. 그러나 임의의 설정으로 모든 테스트가 완벽하게 통과할 것으로 기대할 수는 없습니다.

추가 옵션은 다양한 옵션에 전달될 수 있습니다.initdb환경 변수를 사용하여 테스트 설정 중에 내부적으로 윈 토토되는 명령PG_TEST_INITDB_EXTRA_OPTS. 예를 들어 체크섬을 활성화하고 사용자 정의 WAL 세그먼트 크기를 사용하여 테스트를 윈 토토하려면work_mem설정, 사용:

PG_TEST_INITDB_EXTRA_OPTS='-k --wal-segsize=4 -c work_mem=50MB'를 확인하세요.

핵심 회귀 테스트 모음 및 기타 테스트에 대해pg_regress, 사용자 정의 런타임 서버 설정은에서도 설정할 수 있습니다.PGOPTIONS환경 변수(이를 허용하는 설정용), 예:

PGOPTIONS="-c debug_parallel_query=regress -c work_mem=50MB"를 확인하세요.

(이것은 libpq에서 제공하는 기능을 사용합니다. 참조옵션자세한 내용은.)

임시 설치에 대해 윈 토토하는 경우 미리 작성된 값을 제공하여 사용자 정의 설정을 설정할 수도 있습니다.postgresql.conf:

echo 'log_checkpoints = on'  test_postgresql.conf
echo 'work_mem = 50MB'  test_postgresql.conf
EXTRA_REGRESS_OPTS="--temp-config=test_postgresql.conf"를 확인하세요.

31.1.6. 추가 테스트#

핵심 회귀 테스트 모음에는 플랫폼에 따라 다르거나 실행하는 데 매우 오랜 시간이 걸릴 수 있기 때문에 기본적으로 실행되지 않는 몇 가지 테스트 파일이 포함되어 있습니다. 변수를 설정하여 이러한 테스트 파일이나 기타 추가 테스트 파일을 실행할 수 있습니다.EXTRA_TESTS. 예를 들어, 다음을 실행하려면numeric_big테스트:

EXTRA_TESTS=numeric_big을 확인하세요

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.