檢查系統狀態

系統狀態檢查器 (SSC) 是在套件層級設定,並在各個模組之間執行。他們會執行檢查來判斷模組是否變更 且並未還原特定狀態,例如變更系統屬性 值。

SSC 主要用於確保模組編寫者不會忘記在測試後清理;但如果忘記,則可提供追蹤記錄,以便解決問題。

而次要用途就是盡可能還原原始狀態,例如: 如果鍵盤目前保持開啟,則關閉鍵盤。

系統狀態檢查器 XML 定義

<system_checker class="com.android.tradefed.suite.checker.KeyguardStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.LeakedThreadStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.SystemServerStatusChecker" />

在 Tradefed 設定 XML 的 system_checker 標記下方定義 SSC。

實作

所有智慧型購物廣告活動 (SSC) 都必須導入 ISystemStatusChecker 介面 提供了 preExecutionCheckpostExecutionCheck 這兩種主要方法 都會在執行每個模組的前後執行

檢查器可以只實作其中一種,也可以實作兩種,如果需要檢查模組前的狀態,並將其與模組後的狀態進行比較,則可以實作兩種。

多個範例 導入方式 目前與所交易公司之間的關聯建議每個實作項目都專注於單一檢查,以提高重複使用性。例如: SystemServerStatusCheck 檢查期間是否在裝置上重新啟動 system_server 程序 測試套件執行在 postExecutionCheck 中,系統會呼叫 deviceSoftRestartedNativeDevice 檢查 system_server 程序是否已重新啟動。

每項作業都會傳回 StatusCheckerResult、 控管團隊可判斷是否要提供其他資訊,例如錯誤報告 。

CTS 中的定義在哪裡?

CTS 系統狀態檢查器會在 /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml 中定義。

如何找出檢查工具失敗情形

根據預設,系統檢查工具故障時,只會顯示在記錄和錯誤報告中 已擷取用於叫用的例項,其名稱採用下列格式 bugreport-checker-post-module-<module name>.zip

您可以在這裡瞭解錯誤報告的產生模組後,

您可以將 --report-system-checkers 選項設為 true,讓系統檢查器將自身回報為測試失敗。這會導致測試執行作業顯示為失敗,失敗原因為狀態檢查器的特定檢查。