測試

快速啟動

如要建構 Zircon 並執行單元測試,請執行下列其中一項指令:

# Build and run x64.
fx set bringup.x64 --with-base //bundles/buildbot/bringup
fx build
fx qemu

# Build and run arm64.
fx set bringup.arm64 --with-base //bundles/buildbot/bringup
fx build
fx qemu

指令碼執行完畢後,您應該會看到 Zircon 殼層。如要執行使用者空間測試,請使用 Zircon 殼層執行:

runtests --all

您可以使用 runtests --all -d 查看系統提供的測試清單。您也可以使用 runtests -n <TEST_NAME> 執行單一測試。

如要執行核心測試,請使用 Zircon 殼層執行:

k ut all

Fuchsia 的「開始使用」頁面詳細說明瞭如何使用 Zircon 殼層,以及如何自動建構所有支援的架構。

使用者空間測試

測試控管工具、執行測試、從 /boot/test/system/test 目錄擷取並執行所有執行檔。如果您提供指令列引數 (例如 runtests -m widget_test),則執行測試只會執行要求的單一測試 (在本例中為 widget_test)。

核心模式測試

核心包含單元測試和診斷,可以使用 k 指令執行。k 指令的輸出內容只會顯示在控制台中。視您的設定而定,這是序列主控台或 debuglog 虛擬終端機。

單元測試

核心的許多部分都有單元測試,會自動回報成功/失敗。這些單元測試是使用核心單元測試程式庫提供的基本功能建構。您可以搜尋 UNITTEST_START_TESTCASE,透過靜態方式找到這些顯示內容。

這些測試可以透過 k ut 的殼層執行。k ut all 會執行所有測試,或使用 k ut $TEST_NAME 執行特定測試。

診斷資料

核心的許多部分都提供診斷功能,而其輸出內容需要手動檢查。其中有些診斷資料是用來驗證正確性 (例如 timer_diag),其他診斷則只會對系統的特定部分 (例如 timer_stress) 進行壓力測試。

如要執行診斷,只要將診斷名稱傳遞至 k 指令即可。舉例來說,如要執行核心的內建基準,請執行 k bench。如要靜態找出完整的核心診斷組合,請搜尋 STATIC_COMMAND。如要動態列舉這些常數,請執行 k help

診斷測試可透過序列主控台執行,或是能實際存取系統。部分診斷可能具有破壞性,可讓系統處於損毀狀態。