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

Costruzioni InstrumentationProtoResultParser.

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