回归测试既可以在全新编译完成但尚未安装的源码树中针对临时拉起的隔离实例运行,也可以针对操作系统中已经安装并正在运行的既有数据库实例发起测试。此外,测试框架支持并行(Parallel)与串行(Sequential)运行模式。并行模式通过多进程并发执行各测试脚本,能够进一步检验进程间通信、物理锁表与共享内存并发调度的正确性。
在源码编译完成之后、执行安装之前,直接在源码根目录下执行:
make check
若全部测试用例执行通过,终端末尾将输出:
# All 213 tests passed.
若有测试失败,会输出具体的报错脚本清单。请在判定其为严重缺陷之前阅读 Section 31.2。
由于该测试方式会自动拉起临时数据库服务器,因此如果你是以 root 身份执行编译的,该命令将无法运行(因为出于安全机制,PostgreSQL 严禁以 root 权限启动服务进程)。
并行回归测试会以当前系统用户身份拉起大量并发进程(最大并发 20 个测试脚本,对应约 40 个并发进程)。请确保当前操作系统的单个用户最大进程数限制(ulimit -u)至少在 50 以上。如需限制并行度,可以通过传递参数调低并发量:
make MAX_CONNECTIONS=10 check
在已安装并正常启动运行的数据库实例上(参见 Chapter 18),执行:
make installcheck
或并行模式:
make installcheck-parallel
测试程序默认通过本机 localhost 和默认端口连接实例。测试会自动在名为 regression 的数据库中运行(若已存在该同名库将被强制销毁重建)。