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

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.