InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

java.lang.Object
com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser


Mengurai hasil 'mode output protoStd' dari eksekusi uji instrumentasi dari shell dan memberi tahu ITestRunListener tentang hasilnya.

Perintah instrumen am dengan opsi "-m" menampilkan status eksekusi pengujian dalam format protobuf biner secara bertahap. Pesan protobuf output adalah InstrumentationData.Session, yang memiliki dua kolom: 1) kolom berulang InstrumentationData.TestStatus, 2) InstrumentationData.SessionStatus. Perintah instrumen am menampilkan pesan status pengujian sebelum/sesudah setiap eksekusi uji. addOutput(byte, int, int) dipanggil dengan argumen data yang merupakan byte serial TestStatus. Setelah semua pengujian selesai, perintah akan menampilkan SessionStatus pada akhirnya.

Lihat https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto untuk definisi protobuf lengkap.

InstrumentationProtoResultParser adalah mesin status dan status ditentukan dalam ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState). Status dimulai dengan ERROR(InstrumentationProtoResultParserState.NOT_STARTED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED InstrumentationProtoResultParserState.NOT_STARTED). Saat melihat status kasus pengujian pertama, status akan berpindah ke ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). Status berubah menjadi ERROR(InstrumentationProtoResultParserState.FINISHED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED InstrumentationProtoResultParserState.FINISHED) jika semua pengujian selesai atau ERROR(InstrumentationProtoResultParserState.CANCELLED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED InstrumentationProtoResultParserState.CANCELLED) jika diminta dengan memanggil cancel().

Setiap kali status pengujian baru tersedia, status tersebut akan diinformasikan kepada pemroses yang terdaftar.

Ringkasan

Konstruktor publik

InstrumentationProtoResultParser(String runName, Collection<ITestRunListener> listeners)

Membuat InstrumentationProtoResultParser.

Metode publik

void addOutput(byte[] data, int offset, int length)

Metode ini dipanggil setiap kali data baru tersedia.

void cancel()

Meminta pembatalan eksekusi pengujian.

void flush()

Dipanggil pada akhir eksekusi proses (kecuali jika proses dibatalkan).

void handleTestRunFailed(String errorMsg)

Metode ini dipanggil saat perintah "am instrument" mengalami error dengan pengecualian.

boolean isCancelled()

Metode batalkan untuk menghentikan eksekusi perintah shell jarak jauh.

Konstruktor publik

InstrumentationProtoResultParser

public InstrumentationProtoResultParser (String runName, 
                Collection<ITestRunListener> listeners)

Membuat InstrumentationProtoResultParser.

Parameter
runName String: nama eksekusi pengujian yang akan diberikan ke ITestRunListener.testRunStarted

listeners Collection: diberi tahu tentang hasil pengujian saat pengujian sedang dieksekusi

Metode publik

addOutput

public void addOutput (byte[] data, 
                int offset, 
                int length)

Metode ini dipanggil setiap kali data baru tersedia.

Parameter
data byte: data serial pesan InstrumentationData.Session. Jika data adalah bagian yang tidak lengkap, data tersebut akan ditambahkan ke buffer internal dan akan diproses pada panggilan addOutput(byte, int, int) berikutnya.

offset int: offset data baru yang disimpan di data

length int: byte data baru di data yang akan diproses.

cancel

public void cancel ()

Meminta pembatalan eksekusi pengujian.

flush

public void flush ()

Dipanggil pada akhir eksekusi proses (kecuali jika proses dibatalkan). Hal ini memungkinkan penerima menghentikan dan melakukan flush data apa pun yang belum diproses.

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

Metode ini dipanggil saat perintah "am instrument" mengalami error dengan pengecualian. Semua pemroses yang terdaftar harus diberi tahu ITestRunListener.testRunFailed diikuti oleh ITestRunListener.testRunEnded jika error terjadi selama eksekusi uji.

Parameter
errorMsg String

isCancelled

public boolean isCancelled ()

Metode batalkan untuk menghentikan eksekusi perintah shell jarak jauh.

Hasil
boolean true untuk membatalkan eksekusi perintah.