システム ステータス チェッカー(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
に設定することで、システム チェッカーがテスト不合格としてレポートするようにできます。これにより、ステータス チェッカーの特定のチェックに基づいて、テストの実行が不合格として表示されます。