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