InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

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


Analyse les résultats du "mode de sortie protoStd" d'un test d'instrumentation exécuté à partir du shell et informe un ITestRunListener des résultats.

Une commande d'instrumentation avec l'option "-m" affiche l'état d'exécution des tests au format protobuf binaire de manière incrémentielle. Le message protobuf de sortie est InstrumentationData.Session, qui comporte deux champs: 1) un champ répété de InstrumentationData.TestStatus, 2) InstrumentationData.SessionStatus. La commande am instrument génère un message d'état du test avant/après chaque exécution du test. addOutput(byte, int, int) est appelé avec un argument data, qui est un octet sérialisé de TestStatus(s). Une fois tous les tests terminés, la commande génère finalement SessionStatus.

Consultez la page https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto pour obtenir une définition complète de protobuf.

InstrumentationProtoResultParser est une machine à états, et les états sont définis dans ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState). L'état commence par ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED). Lorsqu'il voit l'état d'un premier cas de test, il passe à ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). L'état passe à ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) si tous les tests sont effectués ou à ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) s'il est demandé en appelant cancel().

Chaque fois qu'un nouvel état de test est disponible, il est communiqué aux écouteurs enregistrés.

Résumé

Constructeurs publics

InstrumentationProtoResultParser(String runName, listeners)

Construit InstrumentationProtoResultParser.

Méthodes publiques

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

Cette méthode est appelée chaque fois que de nouvelles données sont disponibles.

void cancel()
void flush()
void handleTestRunFailed(String errorMsg)
boolean isCancelled()

Constructeurs publics

InstrumentationProtoResultParser

public InstrumentationProtoResultParser (String runName, 
                 listeners)

Construit InstrumentationProtoResultParser.

Paramètres
runName String: nom de l'exécution de test à fournir à ITestRunListener.testRunStarted

listeners : informé des résultats des tests pendant leur exécution

Méthodes publiques

addOutput

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

Cette méthode est appelée chaque fois que de nouvelles données sont disponibles.

Paramètres
data byte: données sérialisées du message InstrumentationData.Session. Si data est un bloc incomplet, il est ajouté à un tampon interne et sera traité lors du prochain appel addOutput(byte, int, int).

offset int: décalage des nouvelles données stockées dans data

length int: octets de nouvelles données dans data à traiter.

Annuler

public void cancel ()

vider

public void flush ()

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

Paramètres
errorMsg String

isCancelled

public boolean isCancelled ()

Renvoie
boolean