33.1. 시험 범퍼카 토토

회귀 테스트는 이미 설치되고 범퍼카 토토중인 서버에 대해 또는 빌드 트리 내에 임시 설치를 사용하여 범퍼카 토토할 수 있습니다. 또한가 있습니다.병렬및 a순차적테스트 실행 모드. 순차적 메소드는 각 테스트 스크립트만으로 실행되는 반면 병렬 메소드는 여러 서버 프로세스를 시작하여 테스트 그룹을 병렬로 실행합니다. 병렬 테스트는 과정 간 통신과 잠금이 올바르게 작동한다는 확신을 추가합니다.

33.1.1. 임시 설치에 대한 테스트 범퍼카 토토

구축 후 병렬 회귀 테스트를 실행하려면 설치하기 전에 다음을 입력하십시오.

확인

최상위 디렉토리에서. (또는 변경할 수 있습니다src/test/regress그리고 그곳에서 명령을 실행하십시오.) 끝에서 당신은 다음과 같은 것을보아야합니다..

=====================
 모든 193 개의 테스트가 통과되었습니다.
=======================

또는 그렇지 않으면 어떤 테스트가 실패한 지에 대한 메모입니다. 보다PostgreSQL : 문서 : 14 : 33.2. 메이저 토토 사이트 평가a 전실패심각한 문제를 나타냅니다.

이 테스트 방법은 임시 서버를 범퍼카 토토하기 때문에 서버가 루트로 시작하지 않기 때문에 루트 사용자로 빌드를 수행하면 작동하지 않습니다. 권장 절차는 빌드를 루트로 수행하지 않거나 설치를 완료 한 후 테스트를 수행하는 것입니다.

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

병렬 회귀 테스트는 사용자 ID에서 몇 가지 프로세스를 시작합니다. 현재 최대 동시성은 20 개의 병렬 테스트 스크립트이며, 이는 40 개의 프로세스를 의미합니다. 서버 프로세스와 APSQL각 테스트 스크립트에 대한 프로세스. 따라서 시스템이 프로세스 수에 대한 사용자 당 한도를 시행하는 경우이 한계가 50 개 이상인지 확인하면 병렬 테스트에서 임의의시기 실패가 발생할 수 있습니다. 한계를 높일 수있는 위치에 있지 않은 경우를 설정하여 평행의 정도를 줄일 수 있습니다.max_connections매개 변수. 예를 들어:

make max_connections = 10 check

동시에 10 번의 테스트를 범퍼카 토토하지 않습니다.

33.1.2. 기존 설치에 대한 테스트 범퍼카 토토

설치 후 테스트를 범퍼카 토토하려면 (참조토토 커뮤니티 : 문서 : 14 : 17 장. 소스 코드에서 설치), 데이터 디렉토리를 초기화하고 다음에 설명 된대로 서버를 시작합니다PostgreSQL : 문서 : 14 : 19 장 롤 토토 설정 및 작동, 다음 유형 :

설치 확인

또는 병렬 테스트 :

InstallCheck-Parallel 만들기

테스트는 |pghostpgport환경 변수. 테스트는이라는 데이터베이스에서 범퍼카 토토됩니다.회귀; 이 이름의 기존 데이터베이스는 삭제됩니다.

테스트는 역할, 테이블 스페이스 및 구독과 같은 일부 클러스터 전체 객체를 일시적으로 생성합니다. 이 객체는로 시작하는 이름이 있습니다.회귀 _. 사용에주의하십시오InstallCheck실제 글로벌 객체가 그런 방식으로 명명 된 설치가있는 모드.

33.1.3. 추가 테스트 스위트

the확인and설치 체크 만들기명령은 범퍼카 토토Core회귀 테스트.PostgreSQL서버. 소스 배포에는 많은 추가 테스트 스위트가 포함되어 있으며 대부분은 선택적 절차 언어와 같은 애드온 기능과 관련이 있습니다.

핵심 테스트를 포함하여 구축 된 모듈에 적용 가능한 모든 테스트 스위트를 범퍼카 토토하려면 빌드 트리의 상단에 이러한 명령 중 하나를 입력하십시오.

체크 세계 만들기
설치-위로 만들기

이 명령은 이전에 설명한 것처럼 임시 서버 또는 이미 설치된 서버를 사용하여 테스트를 실행합니다.확인and설치 체크 만들기. 다른 고려 사항은 각 방법에 대해 이전에 설명한 것과 동일합니다. 참고체크 월드 만들기각각의 테스트 된 모듈에 대해 별도의 인스턴스 (임시 데이터 디렉토리)를 빌드하므로보다 더 많은 시간과 디스크 공간이 필요합니다.InstallCheck-World 만들기.

다수의 CPU 코어가 있고 단단한 운영 시스템 한도가없는 최신 기계의 경우 병렬 처리로 실질적으로 더 빨리 갈 수 있습니다. 대부분의 PostgreSQL 개발자가 실제로 모든 테스트를 실행하는 데 사용하는 레시피는와 같습니다.

체크 세계 만들기 -j8/dev/null

with-j사용 가능한 코어 수보다 가까이 또는 조금 더 제한. 폐기Stdout성공을 확인하고 싶을 때 흥미롭지 않은 채터를 제거합니다. (실패의 경우Stderr메시지는 일반적으로 자세히 살펴볼 곳을 결정하기에 충분합니다.)

또는 입력하여 개별 테스트 스위트를 범퍼카 토토할 수 있습니다확인또는설치 체크 만들기빌드 트리의 적절한 하위 디렉토리. 명심하십시오설치 체크 만들기코어 서버뿐만 아니라 관련 모듈을 설치했다고 가정합니다.

이 방법으로 호출 할 수있는 추가 테스트에는 다음이 포함됩니다.

  • 선택적인 절차 언어에 대한 회귀 테스트. 이들은 아래에 있습니다SRC/PL.

  • 회귀 테스트에 대한Contrib모듈, 아래에있는 모듈Contrib. 전부는 아닙니다Contrib18608_18630

  • 인터페이스 라이브러리에 대한 회귀 테스트,SRC/인터페이스/libpq/testandSRC/인터페이스/ecpg/test.

  • 핵심 지원 인증 방법에 대한 테스트SRC/TEST/AUTHENTICATION. (추가 인증 관련 테스트는 아래를 참조하십시오.)

  • 동시 세션의 스트레스 행동 테스트SRC/TEST/INLOPITATION.

  • 충돌 복구 및 물리 복제 테스트,SRC/TEST/Recovery.

  • 논리적 복제 테스트,src/test/subscription.

  • 아래에 위치한 고객 프로그램 테스트SRC/BIN.

사용시InstallCheck모드,이 테스트는 이름이 포함 된 테스트 데이터베이스를 생성하고 파괴합니다.회귀, 예를 들어pl_regression또는Contrib_Regression. 사용에주의하십시오InstallCheck그 방식으로 이름이없는 데이터베이스가없는 설치가있는 모드.

이 보조 테스트 스위트 중 일부는 설명 된 탭 인프라를 사용합니다PostgreSQL : 문서 : 14 : 33.4. 탭 토토 커뮤니티. 탭 기반 테스트는 PostgreSQL이 옵션으로 구성된 경우에만 실행됩니다.​​-enable-tap-tests. 이것은 개발에 권장되지만 적절한 Perl 설치가 없으면 생략 할 수 있습니다.

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

체크 월드 MATE PG_TEST_EXTRA = 'KERBEROS LDAP SSL'

다음 값은 현재 지원됩니다.

Kerberos

테스트 스위트를 범퍼카 토토합니다src/test/kerberos. 이를 위해서는 MIT Kerberos 설치가 필요하며 TCP/IP 청취 소켓을 엽니 다.

LDAP

테스트 스위트를 범퍼카 토토합니다src/test/ldap. 이것은 필요합니다OpenLdap설치 및 열기 TCP/IP 청취 소켓.

SSL

|src/test/ssl. 이것은 TCP/IP 청취 소켓을 열어줍니다.

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

또한 테스트가 있습니다.SRC/TEST/MODULES체크 세계 만들기그러나InstallCheck-World 만들기. 이는 비 생산 확장을 설치하거나 생산 설치에 바람직하지 않은 것으로 간주되는 다른 부작용이 있기 때문입니다. 사용할 수 있습니다설치and설치 확인원하는 경우 해당 하위 디렉토리 중 하나에서는 테스트가 아닌 서버를 사용하는 것이 좋습니다.

33.1.4. 로케일 및 인코딩

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

점검 lang = c
확인 lc_collate = en_us.utf8 lc_ctype = fr_ca.utf8

구현 이유, 설정LC_ALL이 목적에는 효과가 없습니다. 다른 모든 로케일 관련 환경 변수는 작동합니다.

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

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

검사 lang = c 인코딩 = euc_jp

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

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

33.1.5. 사용자 정의 서버 설정

회귀 테스트 스위트를 실행할 때 사용할 맞춤형 서버 설정pgoptions환경 변수 (이를 허용하는 설정의 경우) :

PGOPTIONS = "-C force_parallel_mode = 회귀 -C work_mem = 50MB"를 확인합니다.

임시 설치에 대해 실행할 때 사전 작성된 것을 공급하여 사용자 정의 설정을 설정할 수도 있습니다postgresql.conf:

echo 'log_checkpoints = on' test_postgresql.conf
echo 'work_mem = 50mb' test_postgresql.conf
extra_regress_opts = "-temp-config = test_postgresql.conf" 확인하십시오.

추가 로깅을 활성화하거나 리소스 제한 조정 또는와 같은 추가 런타임 확인을 활성화하는 데 유용 할 수 있습니다.debug_discard_caches.

33.1.6. 추가 테스트

Core Regression Test Suite에는 기본적으로 실행되지 않는 몇 가지 테스트 파일이 포함되어 있습니다. 플랫폼에 의존하거나 실행하는 데 시간이 오래 걸릴 수 있기 때문입니다. 변수를 설정하여 이러한 추가 테스트 파일 또는 기타 추가 테스트 파일을 실행할 수 있습니다extra_tests. 예를 들어,를 범퍼카 토토하려면numeric_big테스트 :

extra_tests = numeric_big 확인하십시오.

33.1.7. 핫 스탠드 테스트

소스 분포에는 핫 스탠드의 정적 동작에 대한 회귀 테스트도 포함되어 있습니다. 이 테스트에는 기본 서버가 실행중인 기본 서버와 기본에서 새로운 WAL 변경을 수락하는 실행중인 대기 서버가 필요합니다 (파일 기반 로그 배송 또는 스트리밍 복제 사용). 해당 서버는 귀하를 위해 자동으로 생성되지 않으며 여기에 복제 설정이 문서화되어 있습니다. 필요한 명령 및 관련 문제에 전념하는 문서의 다양한 섹션을 확인하십시오.

핫 대기 테스트를 범퍼카 토토하려면 먼저라는 데이터베이스를 만듭니다.회귀1 차 :

PSQL -H Primary -C "데이터베이스 회귀 생성"

다음, 준비 스크립트 실행src/test/regress/sql/hs_primary_setup.sql예를 들어 회귀 데이터베이스의 기본에서 :

PSQL -H Primary -F Src/Test/Regress/SQL/HS_PRIMARY_SETUP.SQL 회귀

이러한 변경 사항이 대기로 전파되도록 허용합니다.

이제 기본 데이터베이스 연결이 테스트 중 대기 서버로 구성되도록 정렬합니다 (예 :pghostandpgport환경 변수). 마지막으로, 범퍼카 토토대기 체크 만들기회귀 디렉토리의 :

CD SRC/테스트/회귀
대기 체크 만들기

스크립트를 사용하여 기본에서 일부 극단적 인 행동을 생성 할 수 있습니다src/test/regress/sql/hs_primary_extremes.sql대기의 동작을 테스트 할 수 있도록.

수정 제출

문서에 올바른 것이없는 것이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면