InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
Bir enstrümantasyon testinin kabuktan çalıştırılmasıyla elde edilen "protoStd çıkış modu" sonuçlarını ayrıştırır ve sonuçlar hakkında bir ITestRunListener'ı bilgilendirir.
"-m" seçeneğiyle kullanılan am instrument komutu, test yürütme durumunu ikili protobuf biçiminde artımlı olarak verir. Çıkış protobuf mesajı InstrumentationData.Session'dır. Bu mesajda iki alan bulunur: 1) InstrumentationData.TestStatus yinelenen alanı, 2) InstrumentationData.SessionStatus. am instrument komutu, her test yürütülmeden önce/sonra test durumu mesajı verir. addOutput(byte, int, int), TestStatus(es) öğesinin serileştirilmiş baytları olan bir data bağımsız değişkeniyle çağrılır. Tüm testler tamamlandığında komut, sonunda SessionStatus çıktısını verir.
Tam protobuf tanımı için https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto adresine bakın.
InstrumentationProtoResultParser bir durum makinesidir ve durumlar ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState) içinde tanımlanır. Durum, ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED) ile başlar. İlk test durumu görüldüğünde ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING)'ya geçer. Tüm testler yapıldıysa durum ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) olarak değişir. cancel() numarası aranarak talep edildiyse durum ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) olarak değişir.
Yeni bir test durumu her kullanıma sunulduğunda kayıtlı dinleyiciler bilgilendirilir.
Özet
Herkese açık oluşturucular | |
|---|---|
InstrumentationProtoResultParser(String runName,
Yapılar |
|
Herkese açık yöntemler | |
|---|---|
void
|
addOutput(byte[] data, int offset, int length)
Bu yöntem, yeni veriler kullanıma sunulduğunda her seferinde çağrılır. |
void
|
cancel()
Test çalıştırmasının iptal edilmesini ister. |
void
|
flush()
İşlem iptal edilmediği sürece, işlem yürütme sonunda çağrılır. |
void
|
handleTestRunFailed(String errorMsg)
Bu yöntem, "am instrument" komutu bir istisnayla çöktüğünde çağrılır. |
boolean
|
isCancelled()
Uzak kabuk komutunun yürütülmesini durdurmak için iptal yöntemi. |
Herkese açık oluşturucular
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,
listeners) Yapılar InstrumentationProtoResultParser.
| Parametreler | |
|---|---|
runName |
String: ITestRunListener.testRunStarted'ye sağlanacak test çalıştırması adı |
listeners |
: Testler yürütülürken test sonuçları hakkında bilgilendirilir. |
Herkese açık yöntemler
addOutput
public void addOutput (byte[] data,
int offset,
int length)Bu yöntem, yeni veriler kullanıma sunulduğunda her seferinde çağrılır.
| Parametreler | |
|---|---|
data |
byte: InstrumentationData.Session mesajının serileştirilmiş verileri. data
eksik bir parça ise dahili bir arabelleğe eklenir ve bir sonraki addOutput(byte, int, int) çağrısında işlenir. |
offset |
int: data içinde depolanan yeni verilerin dengesi |
length |
int: İşlenecek data içindeki yeni verilerin bayt sayısı. |
iptal
public void cancel ()
Test çalıştırmasının iptal edilmesini ister.
flush
public void flush ()
İşlem iptal edilmediği sürece, işlem yürütme sonunda çağrılır. Bu sayede alıcı, henüz işlenmemiş verileri sonlandırıp temizleyebilir.
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
Bu yöntem, "am instrument" komutu bir istisnayla çöktüğünde çağrılır. Kayıtlı tüm dinleyicilere ITestRunListener.testRunFailed ve ardından test yürütülürken kilitlenme olursa ITestRunListener.testRunEnded(long, bildirimi gönderilmelidir.
| Parametreler | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
Uzak kabuk komutunun yürütülmesini durdurmak için iptal yöntemi.
| İlerlemeler | |
|---|---|
boolean |
Komutun yürütülmesini iptal etmek için true. |