システム ステータス チェッカー(SSC)は、スイートレベルの設定で定義され、各モジュール間で実行されます。システム プロパティ値の変更など、モジュールが変更されて特定の状態が復元されなかったかどうかのチェックを行います。
SSC は主に、モジュール作成者がテスト後にクリーンアップし忘れないようにするために使用されます。ただしその場合は、対処できるようにトレースを提供します。
もう 1 つの用途として、可能な場合に元の状態を復元することもできます。たとえば、キーガードが開いたままになっている場合にそのキーガードを閉じます。
システム ステータス チェッカーの 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" />
SSC は、Tradefed 設定 XML の system_checker
タグで定義されます。
実装
SSC はすべて、ISystemStatusChecker インターフェースを実装する必要があります。これは、各モジュールの実行の前後に実行される 2 つの主なメソッド preExecutionCheck
と postExecutionCheck
を提供します。
チェッカーは、この 2 つのうち 1 つのみ、または両方を実装できます(モジュールの前の状態をチェックしてモジュールの後の状態と比較する必要がある場合)。
Tradefed には実装例がいくつかあります。各実装は、再利用性を高めるため、1 つのチェックに集中することをおすすめします。たとえば SystemServerStatusCheck は、テストスイートの実行中にデバイスで system_server
プロセスが再起動されたかどうかをチェックします。postExecutionCheck
では、NativeDevice で定義されている deviceSoftRestarted
を呼び出して、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
に設定することで、システム チェッカーがテスト不合格としてレポートするようにできます。これにより、ステータス チェッカーの特定のチェックを原因として、テストの実行が不合格として表示されます。