회귀 테스트는 이미 설치되고 윈 토토중인 서버에 대해 또는 빌드 트리 내에 임시 설치를 사용하여 윈 토토할 수 있습니다. 또한가 있습니다.“병렬”및 a“순차적”테스트 윈 토토 모드. 순차적 메소드는 각 테스트 스크립트만으로 실행되는 반면 병렬 메소드는 여러 서버 프로세스를 시작하여 테스트 그룹을 병렬로 실행합니다.“병렬”테스트에 필요한 경우 모드.
구축 후 병렬 회귀 테스트를 실행하려면 설치하기 전에 다음을 입력하십시오.
확인
최상위 디렉토리에서. (또는 변경할 수 있습니다src/test/regress
그리고 그곳에서 명령을 실행하십시오.) 병렬로 실행되는 테스트는 접두사입니다.“+”및 순차적으로 실행되는 테스트는 접두사로“-”. 결국 당신은 다음과 같은 것을 볼 수 있어야합니다.
# 모든 213 개의 테스트가 통과되었습니다.
또는 그렇지 않으면 어떤 테스트가 실패한 지에 대한 메모입니다. 보다PostgreSQL : 문서 : 17 : 31.2. 사설 토토 사이트 평가a 전“실패”심각한 문제를 나타냅니다.
이 테스트 방법은 임시 서버를 윈 토토하기 때문에 서버가 루트로 시작하지 않기 때문에 루트 사용자로 빌드를 수행하면 작동하지 않습니다. 권장 절차는 빌드를 루트로 수행하지 않거나 설치를 완료 한 후 테스트를 수행하는 것입니다.
구성된 경우postgresql오래된 위치에 설치하려면postgresql설치가 이미 존재하고 수행확인
새 버전을 설치하기 전에 새 프로그램이 이미 설치된 공유 라이브러리를 사용하려고 시도하기 때문에 테스트가 실패 할 수 있습니다. (일반적인 증상은 정의되지 않은 기호에 대한 불만입니다.) 이전 설치를 덮어 쓰기 전에 테스트를 실행하려면를 구축해야합니다.구성-disable-ratp
. 그러나 최종 설치 에이 옵션을 사용하는 것이 좋습니다.
병렬 회귀 테스트는 사용자 ID에서 몇 가지 프로세스를 시작합니다. 현재 최대 동시성은 20 개의 병렬 테스트 스크립트이며, 이는 40 개의 프로세스를 의미합니다. 서버 프로세스와 APSQL각 테스트 스크립트에 대한 프로세스. 따라서 시스템이 프로세스 수에 대한 사용자 당 한계를 시행하는 경우이 한계가 50 개 이상인지 확인하면 병렬 테스트에서 임의의시기 실패가 발생할 수 있습니다.max_connections
매개 변수. 예를 들어:
make max_connections = 10 check
동시에 10 개의 테스트를 윈 토토하지 않습니다.
설치 후 테스트를 윈 토토하려면 (참조스포츠 토토 결과 : 문서 : 17 : 17 장. 소스 코드에서 설치), 데이터 디렉토리를 초기화하고 다음에 설명 된대로 서버를 시작합니다스포츠 토토 결과 : 문서 : 17 : 18 장 서버 설정 및 작동, 다음 유형 :
설치 체크 만들기
또는 병렬 테스트 :
InstallCheck-Parallel 만들기
테스트는 달리 지시되지 않는 한 로컬 호스트의 서버와 기본 포트 번호에 연락 할 것으로 예상됩니다.pghost
andpgport
환경 변수. 테스트는이라는 데이터베이스에서 윈 토토됩니다.회귀
; 이 이름의 기존 데이터베이스는 삭제됩니다.
테스트는 역할, 테이블 스페이스 및 구독과 같은 일부 클러스터 전체 객체를 일시적으로 생성합니다. 이 객체는로 시작하는 이름이 있습니다.regress_
. 사용에주의하십시오InstallCheck
실제 글로벌 객체가 그런 방식으로 명명 된 설치가있는 모드.
the확인
and설치 체크 만들기
명령은 윈 토토“Core”회귀 테스트.postgresql서버. 소스 배포에는 많은 추가 테스트 스위트가 포함되어 있으며 대부분은 선택적 절차 언어와 같은 애드온 기능과 관련이 있습니다.
핵심 테스트를 포함하여 구축 된 모듈에 적용 가능한 모든 테스트 스위트를 윈 토토하려면 빌드 트리 맨 위에 이러한 명령 중 하나를 입력하십시오.
체크 세계 만들기
이 명령은 이전에 설명한 것처럼 임시 서버 또는 이미 설치된 서버를 사용하여 테스트를 실행합니다.확인
and설치 체크 만들기
. 다른 고려 사항은 각 방법에 대해 이전에 설명한 것과 동일합니다.체크 월드 만들기
각각의 테스트 된 모듈에 대해 별도의 인스턴스 (임시 데이터 디렉토리)를 빌드하므로보다 더 많은 시간과 디스크 공간이 필요합니다.InstallCheck-World 만들기
.
다수의 CPU 코어가 있고 단단한 운영 시스템 제한이없는 최신 기계의 경우 병렬 처리로 실질적으로 더 빨리 갈 수 있습니다. 대부분의 PostgreSQL 개발자가 실제로 모든 테스트를 실행하는 데 사용하는 레시피는와 같습니다.
체크 월드 만들기 -j8>/dev/null
with-j
사용 가능한 코어 수보다 가까이 또는 조금 더 제한. 폐기Stdout성공을 확인하고 싶을 때 흥미롭지 않은 채터를 제거합니다. (실패의 경우Stderr메시지는 일반적으로 자세히 살펴볼 곳을 결정하기에 충분합니다.)
또는 입력하여 개별 테스트 스위트를 윈 토토할 수 있습니다확인
또는설치 체크 만들기
빌드 트리의 적절한 하위 디렉토리. 명심하십시오설치 체크 만들기
핵심 서버뿐만 아니라 관련 모듈을 설치했다고 가정합니다.
이 방법으로 호출 할 수있는 추가 테스트에는 다음이 포함됩니다.
선택적인 절차 언어에 대한 회귀 테스트. 이들은 아래에 있습니다SRC/PL
.
회귀 테스트Contrib
모듈, 아래에있는 모듈Contrib
. 전부는 아닙니다Contrib
모듈에는 테스트가 있습니다.
인터페이스 라이브러리에 대한 회귀 테스트,src/interfaces/libpq/test
andSRC/인터페이스/ecpg/test
.
핵심 지원 인증 방법에 대한 테스트SRC/TEST/AUTHENTICATION
. (추가 인증 관련 테스트는 아래를 참조하십시오.)
동시 세션의 스트레스 행동 테스트SRC/TEST/INLOPITATION
.
충돌 복구 및 물리 복제 테스트,SRC/TEST/Recovery
.
논리 복제 테스트,src/test/subscription
.
아래에 위치한 클라이언트 프로그램 테스트SRC/BIN
.
사용시InstallCheck
모드,이 테스트는 이름이 포함 된 테스트 데이터베이스를 생성하고 파괴합니다.회귀
, 예를 들어pl_regression
또는Contrib_Regression
. 사용에주의하십시오InstallCheck
그 방식으로 이름이없는 데이터베이스가없는 설치가있는 모드.
이 보조 테스트 스위트 중 일부는 설명 된 탭 인프라를 사용합니다섹션 31.4. 탭 기반 테스트는 PostgreSQL이 옵션으로 구성된 경우에만 실행됩니다.-enable-tap-tests
. 이것은 개발에 권장되지만 적절한 Perl 설치가 없으면 생략 할 수 있습니다.
일부 테스트 스위트는 특수 소프트웨어가 필요하거나 리소스 집약적이기 때문에 다중 사용자 시스템에서 윈 토토되는 것이 안전하지 않기 때문에 기본적으로 윈 토토되지 않습니다. 설정하여 추가로 윈 토토할 테스트 스위트를 결정할 수 있습니다만들기
또는 환경 변수PG_TEST_EXTRA
예를 들어 공백 분리 목록으로 :
checkworld make pg_test_extra = 'kerberos ldap ssl load_balance libpq_encryption'
다음 값은 현재 지원됩니다.
Kerberos
테스트 스위트에서 윈 토토src/test/kerberos
. 이를 위해서는 MIT Kerberos 설치가 필요하며 TCP/IP 청취 소켓을 엽니 다.
ldap
테스트 스위트에서 윈 토토src/test/ldap
. 이것은 필요합니다OpenLdap설치 및 열기 TCP/IP 청취 소켓.
SSL
테스트 스위트에서 윈 토토src/test/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
또한 포함Kerberos
, MIT Kerberos 설치가 필요한 추가 테스트가 활성화됩니다.
Wal_Consistency_checking
용도Wal_Consistency_checking = all
아래에서 특정 테스트를 윈 토토하는 동안SRC/TEST/Recovery
. 자원 집약적이기 때문에 기본적으로 활성화되지 않습니다.
xid_wraparound
테스트 스위트에서 윈 토토SRC/TEST/MODULES/XID_WRAPAROUND
. 자원 집약적이기 때문에 기본적으로 활성화되지 않습니다.
현재 빌드 구성에서 지원하지 않는 기능에 대한 테스트는 언급 된 경우에도 실행되지 않습니다PG_TEST_EXTRA
.
또한 테스트가 있습니다.SRC/TEST/MODULES
체크 월드 만들기
그러나InstallCheck-World 만들기
. 이는 비 생산 확장을 설치하거나 생산 설치에 바람직하지 않은 것으로 간주되는 다른 부작용이 있기 때문입니다.설치
and설치 체크 만들기
원하는 경우 해당 하위 디렉토리 중 하나에서 비 테스트 서버를 사용하면 권장하지 않습니다.
기본적으로 임시 설치를 사용한 테스트 현재 환경에서 정의 된 로케일과 해당 데이터베이스 인코딩을 사용합니다initdb
. 예를 들어 적절한 환경 변수를 설정하여 다른 로케일을 테스트하는 것이 유용 할 수 있습니다.
점검 lang = c
구현 이유, 설정LC_ALL
이 목적으로는 효과가 없습니다. 다른 모든 로케일 관련 환경 변수는 작동합니다.
기존 설치에 대해 테스트 할 때 로케일은 기존 데이터베이스 클러스터에 의해 결정되며 테스트 윈 토토에 대해 별도로 설정할 수 없습니다..
변수를 설정하여 명시 적으로 인코딩하는 데이터베이스를 선택할 수도 있습니다인코딩
, 예 :
확인 make lang = c 인코딩 = euc_jp
이 방식으로 데이터베이스를 인코딩하는 데 일반적으로 로케일이 C 인 경우에만 의미가 있습니다. 그렇지 않으면 인코딩은 로케일에서 자동으로 선택되며 로케일과 일치하지 않는 인코딩을 지정하면 오류가 발생합니다.
데이터베이스 인코딩은 임시 또는 기존 설치에 대한 테스트를 위해 설정할 수 있지만 후자의 경우 설치의 로케일과 호환되어야합니다.
테스트 스위트를 실행할 때 사용자 정의 서버 설정을 사용하는 방법에는 여러 가지가 있습니다. 이는 추가 로깅을 활성화하거나 리소스 제한 조정 또는와 같은 추가 런타임 검사를 활성화하는 데 유용 할 수 있습니다.debug_discard_caches. 그러나 모든 테스트가 임의의 설정으로 깨끗하게 통과 될 것으로 예상되는 것은 아닙니다.
추가 옵션을 다양한 옵션으로 전달할 수 있습니다initdb
환경 변수를 사용하여 테스트 설정 중에 내부적으로 윈 토토되는 명령PG_TEST_INITDB_EXTRA_OPTS
. 예를 들어, 체크섬이 활성화 된 테스트를 윈 토토하려면 사용자 정의 WAL 세그먼트 크기 및work_mem
설정, 사용 :
확인 make pg_test_initdb_extra_opts = '-k -wal-segsize = 4 -c work_mem = 50mb'
코어 회귀 테스트 스위트 및 기타 테스트에 의해PG_REGRESS
, 사용자 정의 런타임 서버 설정도에서 설정할 수 있습니다.pgoptions
환경 변수 (이를 허용하는 설정의 경우) :
확인 pgoptions = "-C debug_parallel_query = 회귀 -C work_mem = 50MB"
(이것은 libpq에서 제공하는 기능을 사용합니다. 참조옵션자세한 내용.)
임시 설치에 대해 실행할 때, 사전 작성된 것을 공급하여 사용자 정의 설정을 설정할 수도 있습니다postgresql.conf
:
echo 'log_checkpoints = on'> test_postgresql.conf
Core Regression Test Suite에는 기본적으로 실행되지 않은 몇 가지 테스트 파일이 포함되어 있습니다. 플랫폼에 의존하거나 실행하는 데 오랜 시간이 걸릴 수 있기 때문입니다. 변수를 설정하여 이러한 추가 테스트 파일 또는 기타 추가 테스트 파일을 실행할 수 있습니다extra_tests
. 예를 들어,를 윈 토토하려면numeric_big
테스트 :
extra_tests = numeric_big 확인합니다.
문서에 올바른 것이 없으면 일치하지 않습니다.이 양식문서 문제를보고하려면