开发者指南

本开发者指南旨在帮助您开始 LNT 的开发工作。目前,许多详细信息尚待完善,但希望这能帮助您入门。

安装

请参阅快速入门指南以了解安装设置。运行 ~/lnt/setup.py 时使用 “develop” 选项。

运行 LNT 的回归测试

LNT 拥有不断增长的回归测试库,这使其更容易改进 LNT,而不会意外破坏现有功能。就像开发大多数其他 LLVM 子项目一样,您应该考虑为您添加的每个功能或修复的每个错误添加回归测试。回归测试必须始终通过,因此您应该将运行回归测试作为您开发工作流程的一部分,就像您在开发其他 LLVM 子项目时所做的那样。

LNT 回归测试使用 lit 和 FileCheck 等工具。目前,安装它们可能最简单的方法是编译 LLVM 并使用那里生成的二进制文件。假设您已将 LLVM 构建到 $LLVMBUILD 中,并将 lnt 安装到 $LNTINSTALL 中,您可以使用以下命令运行回归测试

PATH=$LLVMBUILD/bin:$LNTINSTALL/bin:$PATH llvm-lit -sv ./tests

如果您不喜欢在 LNT 源代码目录中创建临时文件,您也可以在不同的目录中运行测试

mkdir ../run_lnt_tests
cd ../run_lnt_tests
PATH=$LLVMBUILD/bin:$LNTINSTALL/bin:$PATH llvm-lit -sv ../lnt/tests

对于简单的更改,添加回归测试并确保所有回归测试通过通常是一种足够好的测试方法。对于某些更改,目前的现有回归测试还不够好,需要手动测试。

可选测试

某些测试需要安装额外的工具,并且默认情况下未启用。您可以通过向 lit 传递额外的标志来启用它们

-Dpostgres=1

启用 postgres 数据库支持测试。这至少需要 postgres 版本 9.2 以及路径中的 initdbpostgres 二进制文件。请注意,您无需设置实际的服务器,测试将按需创建临时实例。

-Dmysql=1

启用 mysql 数据库支持测试。这需要安装 MySQL-python,并期望路径中有 mysqldmysqladmin 二进制文件。请注意,您无需设置实际的服务器,测试将按需创建临时实例。

-Dtidylib=1

使用 tidy-html5 检查生成的 html 页面是否存在错误。这需要安装 pytidylib 和 tidy-html5。

-Dcheck-coverage=1

启用 coverage.py 报告,假设已安装 coverage 模块,并且虚拟环境中的 sitecustomize.py 已被适当修改。

示例

PATH=$LLVMBUILD/bin:$LNTINSTALL/bin:$PATH llvm-lit -sv -Dpostgres=1 -Dmysql=1 -Dtidylib=1 ../lnt/tests