PostgreSQL源码编译后,可以执行“安装后测试(the tests after installation)”回归。 # 环境准备 ``` sudo yum install perl-IPC-Run.noarch ``` 假设PG源代码目录为: ``` /home/yz/postgres_src ``` 编译时可以打开以下开关以支持tap测试: ``` --enable-tap-tests ``` # make installcheck 先初始化安装PG: ``` initdb -D /home/yz/pg_data ``` 启动PG(假设server端口为7404): ``` pg_ctl -D /home/yz/pg_data/ -l ~/logfile start ``` 执行`make installcheck`: ``` make installcheck ``` 配置环境变量: ``` export PG_REGRESS=/home/yz/postgres_src/src/test/regress/pg_regress export PGPORT=7404 export REGRESS_SHLIB=/home/yz/postgres_src/src/test/regress/regress.so ``` 执行单个回归(以`022_crash_temp_files.pl`为例): ``` cd /home/yz/postgres_src/src/test/perl perl ../recovery/t/022_crash_temp_files.pl ``` 如果需要调试,可以使用`perl -d`: ``` perl -d ../recovery/t/022_crash_temp_files.pl ``` # 只执行一个target 假设仅需要执行某个target,假设仅执行recovery,则: ``` cd /home/yz/postgres_src/src/test/recovery make installcheck ``` # 参考 * [33.1. Running the Tests](https://www.postgresql.org/docs/current/regress-run.html)