InstrumentationProtoResultParser
public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
Анализирует результаты «режима вывода protoStd» теста инструментария, запущенного из оболочки, и информирует ITestRunListener о результатах.
Команда am instrument с опцией "-m" выводит состояние выполнения теста в двоичном формате Protobuf инкрементально. Выходное сообщение Protobuf — InstrumentationData.Session , которое содержит два поля: 1) повторяющееся поле InstrumentationData.TestStatus и 2) InstrumentationData.SessionStatus . Команда am instrument выводит сообщение о состоянии теста до и после каждого выполнения теста. addOutput(byte, int, int) вызывается с аргументом data , представляющим собой сериализованные байты TestStatus (es). После завершения всех тестов команда наконец выводит SessionStatus .
Полное определение protobuf см. по адресу https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto.
InstrumentationProtoResultParser — это конечный автомат, состояния которого определяются в ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState) . Состояние начинается с ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED) . При обнаружении первого статуса тестового случая он переходит в ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING) . Состояние изменяется на ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) , если все тесты выполнены, или ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) , если это запрошено путем вызова cancel() .
Каждый раз, когда становится доступен новый статус теста, об этом будет сообщено зарегистрированным слушателям.
Краткое содержание
Публичные конструкторы | |
|---|---|
InstrumentationProtoResultParser (String runName, Создает | |
Публичные методы | |
|---|---|
void | addOutput (byte[] data, int offset, int length)Этот метод вызывается каждый раз, когда появляются новые данные. |
void | cancel ()Прошу отменить тестовый запуск. |
void | flush ()Вызывается в конце выполнения процесса (если процесс не был отменен). |
void | handleTestRunFailed (String errorMsg)Этот метод вызывается, когда команда «am instrument» завершается сбоем и возникает исключение. |
boolean | isCancelled ()Метод Cancel останавливает выполнение удаленной команды оболочки. |
Публичные конструкторы
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,
listeners) Создает InstrumentationProtoResultParser .
| Параметры | |
|---|---|
runName | String : имя тестового запуска, которое необходимо предоставить ITestRunListener.testRunStarted |
listeners | : информирование о результатах тестов по мере их выполнения |
Публичные методы
addOutput
public void addOutput (byte[] data,
int offset,
int length)Этот метод вызывается каждый раз, когда появляются новые данные.
| Параметры | |
|---|---|
data | byte : сериализованные данные сообщения InstrumentationData.Session . Если data представляют собой неполный фрагмент, они добавляются во внутренний буфер и будут обработаны при следующем вызове addOutput(byte, int, int) . |
offset | int : смещение новых данных, сохраненных в data |
length | int : байты новых данных в data , подлежащих обработке. |
отмена
public void cancel ()
Прошу отменить тестовый запуск.
румянец
public void flush ()
Вызывается в конце выполнения процесса (если процесс не был отменён). Это позволяет получателю завершить работу и сбросить на диск необработанные данные.
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
Этот метод вызывается при аварийном завершении команды "am instrument" с исключением. Все зарегистрированные прослушиватели должны быть уведомлены ITestRunListener.testRunFailed а затем методом ITestRunListener.testRunEnded(long, если сбой произошел во время выполнения теста.
| Параметры | |
|---|---|
errorMsg | String |
отменено
public boolean isCancelled ()
Метод Cancel останавливает выполнение удаленной команды оболочки.
| Возврат | |
|---|---|
boolean | true для отмены выполнения команды. |