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'esecuzione di test di strumentazione dalla shell e informa un ITestRunListener dei risultati.
Un comando di strumentazione con l'opzione "-m" restituisce 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 di strumentazione restituisce il messaggio di stato del test
prima/dopo ogni esecuzione del test. addOutput(byte, int, int) viene richiamato con un argomento data che è un byte serializzato di TestStatus. Al termine di tutti i test, il comando
restituisce SessionStatus alla fine.
Per una definizione protobuf completa, consulta la pagina 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(InstrumentationProtoResultParserState.NOT_STARTED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED InstrumentationProtoResultParserState.NOT_STARTED). Quando vede lo stato del primo caso di test, si
sposta su ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). Lo stato passa a ERROR(InstrumentationProtoResultParserState.FINISHED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED InstrumentationProtoResultParserState.FINISHED) se tutti i test sono stati completati o ERROR(InstrumentationProtoResultParserState.CANCELLED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED InstrumentationProtoResultParserState.CANCELLED) se viene richiesto chiamando cancel().
Ogni volta che è disponibile un nuovo stato del test, verrà comunicato ai listener registrati.
Riepilogo
Costruttori pubblici | |
|---|---|
InstrumentationProtoResultParser(String runName, Collection<ITestRunListener> listeners)
Costruisce |
|
Metodi pubblici | |
|---|---|
void
|
addOutput(byte[] data, int offset, int length)
Questo metodo viene chiamato ogni volta che sono disponibili nuovi dati. |
void
|
cancel()
Richiede l'annullamento dell'esecuzione del test. |
void
|
flush()
Chiamato al termine dell'esecuzione del processo (a meno che non sia stato annullato). |
void
|
handleTestRunFailed(String errorMsg)
Questo metodo viene chiamato quando il comando "am instrument" si arresta in modo anomalo con un'eccezione. |
boolean
|
isCancelled()
Metodo di annullamento per interrompere l'esecuzione del comando della shell remota. |
Costruttori pubblici
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,
Collection<ITestRunListener> listeners)Costruisce InstrumentationProtoResultParser.
| Parametri | |
|---|---|
runName |
String: il nome dell'esecuzione del test da fornire a ITestRunListener.testRunStarted |
listeners |
Collection: informata 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 blocco incompleto, viene aggiunto a un buffer interno e verrà elaborato ne
lla successiva addOutput(byte, int, int) chiamata. |
offset |
int: un offset dei nuovi dati memorizzati in data |
length |
int: byte di nuovi dati in data da elaborare. |
cancel
public void cancel ()
Richiede l'annullamento dell'esecuzione del test.
flush
public void flush ()
Chiamato al termine dell'esecuzione del processo (a meno che non sia stato annullato). Ciò consente al receiver di terminare e svuotare i dati non ancora elaborati.
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
Questo metodo viene chiamato quando il comando "am instrument" si arresta in modo anomalo con un'eccezione. Tutti i listener registrati
devono ricevere una notifica ITestRunListener.testRunFailed seguita da ITestRunListener.testRunEnded se l'arresto anomalo si verifica durante l'esecuzione del test.
| Parametri | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
Metodo di annullamento per interrompere l'esecuzione del comando della shell remota.
| Risultati | |
|---|---|
boolean |
true per annullare l'esecuzione del comando. |