開發者指南

本開發者指南旨在協助您開始開發 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 模組並且 virtualenv 中的 sitecustomize.py 已被適當修改。

範例

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