InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

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


Analiza los resultados del "modo de salida protoStd" de una ejecución de prueba de instrumentación desde la shell y le informa a un ITestRunListener sobre los resultados.

Un comando am instrument con la opción "-m" genera el estado de ejecución de la prueba en formato protobuf binario de forma incremental. El mensaje .proto de salida es InstrumentationData.Session, que tiene dos campos: 1) un campo repetido de InstrumentationData.TestStatus y 2) InstrumentationData.SessionStatus. El comando am instrument genera un mensaje de estado de la prueba antes y después de cada ejecución de prueba. Se invoca addOutput(byte, int, int) con un argumento data, que son bytes serializados de TestStatus(es). Cuando se completan todas las pruebas, el comando finalmente genera SessionStatus.

Consulta https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto para obtener una definición completa de protobuf.

InstrumentationProtoResultParser es una máquina de estados, y los estados se definen en ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState). El estado comienza con ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED). Cuando ve el estado del primer caso de prueba, cambia a ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). El estado cambia a ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) si se completan todas las pruebas o a ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) si se solicita llamando a cancel().

Cada vez que haya un nuevo estado de prueba disponible, se informará a los objetos de escucha registrados.

Resumen

Constructores públicos

InstrumentationProtoResultParser(String runName, listeners)

Construye InstrumentationProtoResultParser.

Métodos públicos

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

Se llama a este método cada vez que hay datos nuevos disponibles.

void cancel()

Solicita la cancelación de la ejecución de prueba.

void flush()

Se llama al final de la ejecución del proceso (a menos que se haya cancelado el proceso).

void handleTestRunFailed(String errorMsg)

Se llama a este método cuando el comando "am instrument" falla con una excepción.

boolean isCancelled()

Método de cancelación para detener la ejecución del comando de shell remoto.

Constructores públicos

InstrumentationProtoResultParser

public InstrumentationProtoResultParser (String runName, 
                 listeners)

Construye InstrumentationProtoResultParser.

Parámetros
runName String: Es el nombre de la ejecución de prueba que se proporcionará a ITestRunListener.testRunStarted.

listeners : Se le informa sobre los resultados de las pruebas a medida que se ejecutan.

Métodos públicos

addOutput

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

Se llama a este método cada vez que hay datos nuevos disponibles.

Parámetros
data byte: Son datos serializados del mensaje InstrumentationData.Session. Si data es un fragmento incompleto, se agrega a un búfer interno y se procesará en la siguiente llamada a addOutput(byte, int, int).

offset int: Es una compensación de los datos nuevos almacenados en data.

length int: Bytes de datos nuevos en data que se procesarán.

cancelar

public void cancel ()

Solicita la cancelación de la ejecución de prueba.

vaciar

public void flush ()

Se llama al final de la ejecución del proceso (a menos que se haya cancelado el proceso). Esto permite que el receptor finalice y vacíe los datos que aún no se procesaron.

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

Se llama a este método cuando el comando "am instrument" falla con una excepción. Se debe notificar a todos los objetos de escucha registrados ITestRunListener.testRunFailed seguido de ITestRunListener.testRunEnded(long, ) si la falla ocurre durante la ejecución de la prueba.

Parámetros
errorMsg String

isCancelled

public boolean isCancelled ()

Método de cancelación para detener la ejecución del comando de shell remoto.

Muestra
boolean Es verdadero para cancelar la ejecución del comando.