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