InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
シェルから実行されたインストルメンテーション テストの「protoStd 出力モード」の結果を解析し、ITestRunListener に結果を通知します。
「-m」オプション付きの am instrument コマンドは、テスト実行ステータスをバイナリ protobuf 形式で増分的に出力します。出力 protobuf メッセージは InstrumentationData.Session です。これには、InstrumentationData.TestStatus の繰り返しフィールドと InstrumentationData.SessionStatus の 2 つのフィールドがあります。am instrument コマンドは、各テスト実行の前後にテスト ステータス メッセージを出力します。addOutput(byte, int, int) は、TestStatus(es) のシリアル化されたバイトである data 引数で呼び出されます。すべてのテストが完了すると、コマンドは最後に SessionStatus を出力します。
完全な protobuf 定義については、https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto をご覧ください。
InstrumentationProtoResultParser はステートマシンであり、状態は ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState) で定義されます。状態は ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED) で始まります。最初のテストケースのステータスを確認すると、ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING) に移動します。すべてのテストが完了した場合は状態が ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) に変わり、cancel() を呼び出してリクエストされた場合は ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) に変わります。
新しいテスト ステータスが利用可能になるたびに、登録済みのリスナーに通知されます。
概要
パブリック コンストラクタ | |
|---|---|
InstrumentationProtoResultParser(String runName,
|
|
パブリック メソッド | |
|---|---|
void
|
addOutput(byte[] data, int offset, int length)
このメソッドは、新しいデータが利用可能になるたびに呼び出されます。 |
void
|
cancel()
テスト実行のキャンセルをリクエストします。 |
void
|
flush()
プロセスの実行の終了時に呼び出されます(プロセスがキャンセルされた場合を除く)。 |
void
|
handleTestRunFailed(String errorMsg)
このメソッドは、「am instrument」コマンドが例外でクラッシュしたときに呼び出されます。 |
boolean
|
isCancelled()
リモートシェル コマンドの実行を停止するキャンセル メソッド。 |
パブリック コンストラクタ
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,
listeners) InstrumentationProtoResultParser を構築します。
| パラメータ | |
|---|---|
runName |
String: ITestRunListener.testRunStarted に提供するテスト実行名 |
listeners |
: テストの実行中にテスト結果が通知される |
パブリック メソッド
addOutput
public void addOutput (byte[] data,
int offset,
int length)このメソッドは、新しいデータが利用可能になるたびに呼び出されます。
| パラメータ | |
|---|---|
data |
byte: InstrumentationData.Session メッセージのシリアル化されたデータ。data が不完全なチャンクである場合、内部バッファに追加され、次の addOutput(byte, int, int) 呼び出しで処理されます。 |
offset |
int: data に保存されている新しいデータのオフセット |
length |
int: 処理する data の新しいデータのバイト数。 |
キャンセル
public void cancel ()
テスト実行のキャンセルをリクエストします。
フラッシュ
public void flush ()
プロセスの実行終了時に呼び出されます(プロセスがキャンセルされた場合を除く)。これにより、受信側はまだ処理されていないデータを終了してフラッシュできます。
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
このメソッドは、「am instrument」コマンドが例外でクラッシュしたときに呼び出されます。テスト実行中にクラッシュが発生した場合、登録されているすべてのリスナーに ITestRunListener.testRunFailed が通知され、その後に ITestRunListener.testRunEnded(long, が通知されます。
| パラメータ | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
リモートシェル コマンドの実行を停止するキャンセル メソッド。
| 戻り値 | |
|---|---|
boolean |
コマンドの実行をキャンセルする場合は true。 |