InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
Analizuje wyniki „protoStd output mode” uruchomienia testu z instrumentacją z powłoki 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 zserializowanymi bajtami TestStatus. Po zakończeniu wszystkich testów polecenie wyświetli na końcu wartość 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 ERROR(InstrumentationProtoResultParserState.NOT_STARTED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED 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(InstrumentationProtoResultParserState.FINISHED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED InstrumentationProtoResultParserState.FINISHED), jeśli wszystkie testy zostaną wykonane, lub na ERROR(InstrumentationProtoResultParserState.CANCELLED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED InstrumentationProtoResultParserState.CANCELLED), jeśli zostanie to zgłoszone przez wywołanie funkcji cancel().
Za każdym razem, gdy będzie dostępny nowy stan testu, zarejestrowani słuchacze otrzymają powiadomienie.
Podsumowanie
Konstruktory publiczne | |
|---|---|
InstrumentationProtoResultParser(String runName, Collection<ITestRunListener> listeners)
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()
Żąda anulowania sesji testowej. |
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 Cancel służy do zatrzymywania wykonywania polecenia powłoki zdalnej. |
Konstruktory publiczne
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,
Collection<ITestRunListener> listeners)Tworzy InstrumentationProtoResultParser.
| Parametry | |
|---|---|
runName |
String: nazwa sesji testowej, która ma zostać przekazana do ITestRunListener.testRunStarted |
listeners |
Collection: otrzymywać informacje 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 przechowywanych w data |
length |
int: bajty nowych danych w data do przetworzenia. |
anuluj
public void cancel ()
Żąda anulowania sesji testowej.
opróżniać,
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 wyczyścić 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, jeśli awaria nastąpi podczas wykonywania testu.
| Parametry | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
Metoda Cancel służy do zatrzymywania wykonywania polecenia powłoki zdalnej.
| Zwraca | |
|---|---|
boolean |
wartość true, aby anulować wykonanie polecenia. |