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 InstrumentationProtoResultParser.

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.