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 do shell e informa um ITestRunListener dos resultados.

Um comando de instrumentação com a opção "-m" gera o status de execução do teste no formato protobuf binário de maneira 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 uma mensagem de status do teste antes/depois de cada execução. addOutput(byte, int, int) é invocado com um argumento data, que é um byte serializado de TestStatus(es). Quando todos os testes forem concluídos, o comando vai gerar SessionStatus.

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

InstrumentationProtoResultParser é uma máquina de estado, 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 ele vê um status de primeiro caso de teste, 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, os listeners registrados serão informados.

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()

Solicita o cancelamento do teste.

void flush()

Chamado no final da execução do processo, a menos que ele tenha sido cancelado.

void handleTestRunFailed(String errorMsg)

Esse método é chamado quando o comando "am instrument" falha com uma exceção.

boolean isCancelled()

Método de cancelamento para interromper a execução do comando do shell remoto.

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 para 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 de uma mensagem InstrumentationData.Session. Se data for um fragmento incompleto, ele será adicionado a um buffer interno e processado na próxima chamada addOutput(byte, int, int).

offset int: um deslocamento dos novos dados armazenados em data

length int: bytes de um novo dado em data a serem processados.

cancelar

public void cancel ()

Solicita o cancelamento do teste.

transferir

public void flush ()

Chamado no final da execução do processo, a menos que ele tenha sido cancelado. Isso permite que o receptor encerre e limpe os dados que ainda não foram processados.

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

Esse método é chamado quando o comando "am instrument" falha com uma exceção. Todos os listeners registrados precisam ser notificados ITestRunListener.testRunFailed seguidos por ITestRunListener.testRunEnded(long, ) se a falha ocorrer durante a execução do teste.

Parâmetros
errorMsg String

isCancelled

public boolean isCancelled ()

Método de cancelamento para interromper a execução do comando do shell remoto.

Retorna
boolean true para cancelar a execução do comando.