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 で、2 つのフィールド(1)InstrumentationData.TestStatus の繰り返しフィールド、2)InstrumentationData.SessionStatus があります。am instrument コマンドは、各テストの実行の前後にテスト ステータス メッセージを出力します。addOutput(byte, int, int) は、TestStatus のシリアル化されたバイトである 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, listeners)

InstrumentationProtoResultParser を構築します。

パブリック メソッド

void addOutput(byte[] data, int offset, int length)

このメソッドは、新しいデータが利用可能になるたびに呼び出されます。

void cancel()
void flush()
void handleTestRunFailed(String errorMsg)
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)

パラメータ
errorMsg String

isCancelled

public boolean isCancelled ()

戻り値
boolean