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, 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()

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.