开发者指南

本开发者指南旨在帮助您开始开发 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