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