pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
目录
摘要
回归测试的说明与分析。
PostgreSQL 回归测试是对由 Jolly Chen 和 Andrew Yu 开发的、嵌入在 PostgreSQL 中的 SQL 实现的一套全面测试。它既测试标准 SQL 操作,也测试 PostgreSQL 的扩展能力。
这些测试最近由 Marc Fournier 和 Thomas Lockhart 修订,现在被打包为功能单元,这应当使它们更易于运行、更易于解读。从 PostgreSQL v6.1 起,回归测试对每个正式发行版都是最新的。
某些安装正确且功能完备的 PostgreSQL 安装可能会因浮点表示和时区支持的特有问题而在其中一些回归测试上失败。这些测试目前是用一种简单的 "diff" 算法来评估的,对细微的系统差异很敏感。对于表面上失败的测试,检查差异可能会发现这些差异并不重要。
下面的回归测试说明假定以下条件(除非另有说明):
命令是 Unix 兼容的。见下面的说明。
除非另有说明,均使用默认值。
用户 postgres 是 Postgres 超级用户。
源代码路径是 /usr/src/pgsql(其他路径也是可能的)。
运行时路径是 /usr/local/pgsql(其他路径也是可能的)。
回归测试由 make 命令调用,该命令把一个带有 C 扩展函数的程序编译成当前目录中的一个共享库。当前目录中还会创建本地化的 shell 脚本。输出文件模板被整理成 ./expected/*.out 文件。本地化会把源文件中的宏替换为绝对路径名和用户名。
通常,回归测试应当以 pg_superuser 运行,因为 'src/test/regress' 目录及其子目录为 pg_superuser 所有。如果你以其他用户运行回归测试,那么 'src/test/regress' 目录树应当可被该用户写入。
过去必须把系统时区设置为 PST 来运行 postmaster,但现在不再需要了。你可以在正常的 postmaster 配置下运行回归测试。测试脚本会设置 PGTZ 环境变量以确保依赖时区的测试产生期望的结果。但是,你的系统必须提供对 PST8PDT 时区的库支持,否则依赖时区的测试将会失败。要验证你的机器确实支持这一点,请键入:
setenv TZ PST8PDT
date
上面的 "date" 命令应当以 PST8PDT 时区返回当前系统时间。如果 PST8PDT 数据库不可用,你的系统可能返回的是 GMT 时间。如果 PST8PDT 时区不可用,你可以显式设置时区规则:
setenv PGTZ PST8PDT7,M04.01.0,M10.05.03
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。