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, listeners)

Costruisce InstrumentationProtoResultParser.

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.