开发者指南¶
本开发者指南旨在帮助您开始开发 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 以及路径中的 initdb 和 postgres 二进制文件。请注意,您无需设置实际的服务器,测试将根据需要创建临时实例。
-Dmysql=1
启用 mysql 数据库支持测试。这需要安装 MySQL-python,并期望路径中存在 mysqld 和 mysqladmin 二进制文件。请注意,您无需设置实际的服务器,测试将根据需要创建临时实例。
-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