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.
Un comando di strumentazione con l'opzione "-m" restituisce lo stato di esecuzione del test in formato binario protobuf
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 am instrument restituisce il messaggio di stato del test
prima/dopo ogni esecuzione del test. addOutput(byte, int, int) viene richiamato con un argomento data
che è una serializzazione di byte di TestStatus. Al termine di tutti i test, il comando
restituisce infine SessionStatus.
Per una definizione protobuf completa, visita 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(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED). Quando rileva lo stato del primo caso di test, passa a ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). Lo stato cambia in ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) se tutti i test sono stati eseguiti o in ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) se viene richiesto chiamando il numero cancel().
Ogni volta che è disponibile un nuovo stato del test, gli ascoltatori registrati ne vengono informati.
Riepilogo
Costruttori pubblici | |
|---|---|
InstrumentationProtoResultParser(String runName,
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 di prova. |
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,
listeners) Costruisce InstrumentationProtoResultParser.
| Parametri | |
|---|---|
runName |
String: il nome dell'esecuzione di 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 blocco incompleto, viene aggiunto a un buffer interno e verrà elaborato nella
successiva chiamata addOutput(byte, int, int). |
offset |
int: un offset dei nuovi dati archiviati in data |
length |
int: byte di nuovi dati in data da elaborare. |
annulla
public void cancel ()
Richiede l'annullamento dell'esecuzione di prova.
scaricare
public void flush ()
Chiamato al termine dell'esecuzione del processo (a meno che non sia stato annullato). Ciò consente al destinatario 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 gli ascoltatori
registrati devono ricevere una notifica ITestRunListener.testRunFailed seguita da ITestRunListener.testRunEnded(long, 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.
| Ritorni | |
|---|---|
boolean |
true per annullare l'esecuzione del comando. |