開發者指南

本開發者指南旨在幫助您開始開發 LNT。目前,許多詳細資訊都還未齊全,但希望這份指南能幫助您入門。

安裝

請參閱快速入門指南以設定安裝。在執行 ~/lnt/setup.py 時,請使用「開發」選項。

執行 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