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