InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
java.lang.Object | |
↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
Analizza i risultati della "modalità di output protoStd" di un test di strumentazione eseguito dalla shell e informa un ITestRunListener dei risultati.
Il comando dello strumento am con l'opzione "-m" genera lo stato di esecuzione del test in formato protobuf binario
in modo incrementale. Il messaggio protobuf di output è InstrumentationData.Session
, che ha due campi: 1) un campo ripetuto di InstrumentationData.TestStatus
, 2) InstrumentationData.SessionStatus
. Il comando dello strumento am genera il messaggio dello stato del test
prima/dopo ogni esecuzione del test. addOutput(byte, int, int)
viene invocato con un argomento data
che è costituito da byte serializzati di TestStatus
(es). Al termine di tutti i test, il comando finalmente genera SessionStatus
.
Per una definizione completa di protobuf, consulta https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto
InstrumentationProtoResultParser
è una macchina a stati e gli stati sono definiti in ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState)
. Lo stato inizia con ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED)
. Quando viene visualizzato lo stato del primo caso di test, viene visualizzato ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING)
. Lo stato diventa ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED)
se tutti i test sono stati completati o ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED)
se viene richiesto chiamando cancel()
.
Ogni volta che è disponibile un nuovo stato del test, verrà comunicato agli ascoltatori registrati.
Riepilogo
Costruttori pubblici | |
---|---|
InstrumentationProtoResultParser(String runName,
Costruzioni |
Metodi pubblici | |
---|---|
void
|
addOutput(byte[] data, int offset, int length)
Questo metodo viene chiamato ogni volta che sono disponibili nuovi dati. |
void
|
cancel()
|
void
|
flush()
|
void
|
handleTestRunFailed(String errorMsg)
|
boolean
|
isCancelled()
|
Costruttori pubblici
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,listeners)
Costruzioni InstrumentationProtoResultParser
.
Parametri | |
---|---|
runName |
String : il nome dell'esecuzione del test da fornire a ITestRunListener.testRunStarted |
listeners |
: informato dei risultati dei test durante l'esecuzione |
Metodi pubblici
addOutput
public void addOutput (byte[] data, int offset, int length)
Questo metodo viene chiamato ogni volta che sono disponibili nuovi dati.
Parametri | |
---|---|
data |
byte : dati serializzati del messaggio InstrumentationData.Session . Se data
è un chunk incompleto, i dati vengono aggiunti a un buffer interno e verranno elaborati nella
chiamata addOutput(byte, int, int) successiva. |
offset |
int : un offset dei nuovi dati archiviati in data |
length |
int : byte di nuovi dati in data da elaborare. |
annulla
public void cancel ()
a filo
public void flush ()
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
Parametri | |
---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
Ritorni | |
---|---|
boolean |