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