InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

java.lang.Object
   ↳ com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser


Parset die Ergebnisse des „protoStd output mode“ eines Instrumentierungstests, der über die Shell ausgeführt wurde, und informiert einen ITestRunListener über die Ergebnisse.

Ein Instrumentierungsbefehl mit der Option „-m“ gibt den Status der Testausführung im binären Protobuf-Format inkrementell aus. Die Ausgabe-Protobuf-Nachricht ist InstrumentationData.Session und enthält zwei Felder: 1) ein wiederkehrendes Feld von InstrumentationData.TestStatus und 2) InstrumentationData.SessionStatus. Der Befehl „am instrument“ gibt vor und nach jeder Testausführung eine Statusmeldung aus. addOutput(byte, int, int) wird mit dem Argument data aufgerufen, das eine serialisierte Bytefolge von TestStatus(s) ist. Wenn alle Tests abgeschlossen sind, gibt der Befehl abschließend SessionStatus aus.

Eine vollständige protobuf-Definition finden Sie unter https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto.

InstrumentationProtoResultParser ist ein Zustandsautomat und die Zustände werden in ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState) definiert. Der Status beginnt mit ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED). Wenn der erste Testfallstatus erkannt wird, ändert sich der Status zu ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). Der Status ändert sich zu ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED), wenn alle Tests abgeschlossen sind, oder zu ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED), wenn cancel() aufgerufen wird.

Sobald ein neuer Teststatus verfügbar ist, werden die registrierten Zuhörer darüber informiert.

Zusammenfassung

Öffentliche Konstruktoren

InstrumentationProtoResultParser(String runName, listeners)

Erstellt InstrumentationProtoResultParser.

Öffentliche Methoden

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

Diese Methode wird jedes Mal aufgerufen, wenn neue Daten verfügbar sind.

void cancel()
void flush()
void handleTestRunFailed(String errorMsg)
boolean isCancelled()

Öffentliche Konstruktoren

InstrumentationProtoResultParser

public InstrumentationProtoResultParser (String runName, 
                 listeners)

Erstellt InstrumentationProtoResultParser.

Parameter
runName String: Der Name des Testlaufs, der für ITestRunListener.testRunStarted angegeben werden soll

listeners : während der Ausführung der Tests über die Testergebnisse informiert werden

Öffentliche Methoden

addOutput

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

Diese Methode wird jedes Mal aufgerufen, wenn neue Daten verfügbar sind.

Parameter
data byte: serialisierte Daten der InstrumentationData.Session-Nachricht. Wenn data ein unvollständiger Block ist, wird er einem internen Puffer hinzugefügt und beim nächsten addOutput(byte, int, int)-Aufruf verarbeitet.

offset int: ein Offset der neuen Daten, die in data gespeichert sind

length int: Byte neuer Daten in data, die verarbeitet werden sollen.

Abbrechen

public void cancel ()

flush

public void flush ()

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

Parameter
errorMsg String

isCancelled

public boolean isCancelled ()

Returns
boolean