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,
Erstellt |
Ö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 |