InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
Analizuje wyniki „protoStd output mode” testu instrumentacji uruchomionego w powłoce i informuje ITestRunListener o wynikach.
Polecenie instrumentu z opcją „-m” stopniowo wyświetla stan wykonania testu w binarnym formacie protobuf. Wyjściowy komunikat protobuf to InstrumentationData.Session, który ma 2 pola: 1) pole powtarzane InstrumentationData.TestStatus, 2) InstrumentationData.SessionStatus. Polecenie am instrument wyświetla komunikat o stanie testu przed i po każdym wykonaniu testu. Funkcja addOutput(byte, int, int) jest wywoływana z argumentem data, który jest zserializowanym bajtem TestStatus. Po zakończeniu wszystkich testów polecenie wyświetli na końcu SessionStatus.
Pełną definicję protobuf znajdziesz na stronie https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto.
InstrumentationProtoResultParser to automat stanowy, a stany są zdefiniowane w ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState). Stan zaczyna się od klucza ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED). Gdy zobaczy stan pierwszego przypadku testowego, przejdzie do stanu ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). Stan zmieni się na ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED), jeśli wszystkie testy zostaną wykonane, lub na ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED), jeśli zostanie to zgłoszone przez wywołanie cancel().
Za każdym razem, gdy będzie dostępny nowy stan testu, zarejestrowani słuchacze otrzymają powiadomienie.
Podsumowanie
Publiczne konstruktory | |
|---|---|
InstrumentationProtoResultParser(String runName,
Tworzy |
|
Metody publiczne | |
|---|---|
void
|
addOutput(byte[] data, int offset, int length)
Ta metoda jest wywoływana za każdym razem, gdy są dostępne nowe dane. |
void
|
cancel()
Prośba o anulowanie testu. |
void
|
flush()
Wywoływana na końcu wykonania procesu (chyba że proces został anulowany). |
void
|
handleTestRunFailed(String errorMsg)
Ta metoda jest wywoływana, gdy polecenie „am instrument” ulega awarii z wyjątkiem. |
boolean
|
isCancelled()
Metoda anulowania, która zatrzymuje wykonywanie polecenia powłoki zdalnej. |
Publiczne konstruktory
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,
listeners) Tworzy InstrumentationProtoResultParser.
| Parametry | |
|---|---|
runName |
String: nazwa testu, która ma zostać przekazana do ITestRunListener.testRunStarted |
listeners |
: powiadamianie o wynikach testów w trakcie ich wykonywania; |
Metody publiczne
addOutput
public void addOutput (byte[] data,
int offset,
int length)Ta metoda jest wywoływana za każdym razem, gdy są dostępne nowe dane.
| Parametry | |
|---|---|
data |
byte: zserializowane dane wiadomości InstrumentationData.Session. Jeśli data
jest niekompletnym fragmentem, zostanie dodany do wewnętrznego bufora i przetworzony w następnym wywołaniu addOutput(byte, int, int). |
offset |
int: przesunięcie nowych danych zapisanych w data |
length |
int: bajty nowych danych w data do przetworzenia. |
anuluj
public void cancel ()
Prośba o anulowanie testu.
spłukiwać,
public void flush ()
Wywoływana na końcu wykonania procesu (chyba że proces został anulowany). Dzięki temu odbiorca może zakończyć działanie i opróżnić wszystkie dane, które nie zostały jeszcze przetworzone.
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
Ta metoda jest wywoływana, gdy polecenie „am instrument” ulega awarii z wyjątkiem. Wszyscy zarejestrowani odbiorcy powinni otrzymać powiadomienie ITestRunListener.testRunFailed, a następnie ITestRunListener.testRunEnded(long, , jeśli awaria nastąpi podczas wykonywania testu.
| Parametry | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
Metoda anulowania, która zatrzymuje wykonywanie polecenia powłoki zdalnej.
| Zwroty | |
|---|---|
boolean |
wartość true, aby anulować wykonanie polecenia. |