InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
Bir kabuktan çalıştırılan enstrümantasyon testinin "protoStd çıkış modu" sonuçlarını ayrıştırır ve sonuçlar hakkında bir ITestRunListener'ı bilgilendirir.
"-m" seçeneğiyle kullanılan bir enstrüman komutu, test yürütme durumunu ikili protobuf biçiminde artımlı olarak verir. Çıkış protobuf mesajı InstrumentationData.Session'dır ve iki alanı vardır: 1) InstrumentationData.TestStatus yinelenen alanı, 2) InstrumentationData.SessionStatus. am instrument komutu, her test işlemi yürütülmeden önce/sonra test durumu mesajı verir. addOutput(byte, int, int), TestStatus(ler)in serileştirilmiş baytları olan bir data bağımsız değişkeniyle çağrılır. Tüm testler tamamlandığında komut, son olarak SessionStatus çıkışı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(InstrumentationProtoResultParserState.NOT_STARTED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED 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(InstrumentationProtoResultParserState.FINISHED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED InstrumentationProtoResultParserState.FINISHED) olarak değişir. cancel() numarası aranarak talep edildiyse durum ERROR(InstrumentationProtoResultParserState.CANCELLED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED 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, Collection<ITestRunListener> listeners)
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 yürütme sonunda çağrılır (işlem iptal edilmediyse). |
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,
Collection<ITestRunListener> listeners)Yapılar InstrumentationProtoResultParser.
| Parametreler | |
|---|---|
runName |
String: ITestRunListener.testRunStarted'a sağlanacak test çalıştırması adı |
listeners |
Collection: Testler yürütülürken test sonuçları hakkında bilgi verilir. |
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 seri hale getirilmiş 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 dengelenmesi |
length |
int: İşlenecek data içindeki yeni verilerin bayt sayısı. |
iptal
public void cancel ()
Test çalıştırmasının iptal edilmesini ister.
boşaltmak
public void flush ()
İşlem yürütme sonunda çağrılır (işlem iptal edilmediyse). 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. Kilitlenme test işlemi sırasında gerçekleşirse kayıtlı tüm dinleyicilere ITestRunListener.testRunFailed ve ardından ITestRunListener.testRunEnded bildirimi gönderilmelidir.
| Parametreler | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
Uzak kabuk komutunun yürütülmesini durdurmak için iptal yöntemi.
| İadeler | |
|---|---|
boolean |
Komutun yürütülmesini iptal etmek için true. |