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 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 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.