InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

java.lang.Object
   ↳ com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser


Analisa os resultados do "modo de saída protoStd" de uma execução de teste de instrumentação no shell e informa um ITestRunListener sobre os resultados.

Um comando de instrumento com a opção "-m" exibe o status de execução do teste no formato protobuf binário de forma incremental. A mensagem protobuf de saída é InstrumentationData.Session, que tem dois campos: 1) um campo repetido de InstrumentationData.TestStatus e 2) InstrumentationData.SessionStatus. O comando am instrument gera a mensagem de status do teste antes/depois de cada execução do teste. addOutput(byte, int, int) é invocado com um argumento data, que é um bytes serializado de TestStatus(s). Quando todos os testes são concluídos, o comando gera SessionStatus por último.

Consulte https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto para conferir uma definição completa do protobuf.

InstrumentationProtoResultParser é uma máquina de estados, e os estados são definidos em ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState). O estado começa com ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED). Quando o status do primeiro caso de teste é detectado, ele muda para ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). O estado muda para ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) se todos os testes forem concluídos ou ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) se for solicitado chamando cancel().

Sempre que um novo status de teste estiver disponível, ele será informado aos listeners registrados.

Resumo

Construtores públicos

InstrumentationProtoResultParser(String runName, listeners)

Cria InstrumentationProtoResultParser.

Métodos públicos

void addOutput(byte[] data, int offset, int length)

Esse método é chamado sempre que novos dados estão disponíveis.

void cancel()
void flush()
void handleTestRunFailed(String errorMsg)
boolean isCancelled()

Construtores públicos

InstrumentationProtoResultParser

public InstrumentationProtoResultParser (String runName, 
                 listeners)

Cria InstrumentationProtoResultParser.

Parâmetros
runName String: o nome da execução de teste a ser fornecido a ITestRunListener.testRunStarted

listeners : informado sobre os resultados dos testes à medida que eles são executados

Métodos públicos

addOutput

public void addOutput (byte[] data, 
                int offset, 
                int length)

Esse método é chamado sempre que novos dados estão disponíveis.

Parâmetros
data byte: dados serializados da mensagem InstrumentationData.Session. Se data for um bloco incompleto, ele será adicionado a um buffer interno e processado na próxima chamada de addOutput(byte, int, int).

offset int: um deslocamento dos novos dados armazenados em data

length int: bytes de novos dados em data a serem processados.

cancelar

public void cancel ()

limpar

public void flush ()

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

Parâmetros
errorMsg String

isCancelled

public boolean isCancelled ()

Retorna
boolean