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'une exécution de test d'instrumentation à partir du shell et informe un ITestRunListener des résultats.

Une commande d'instrument avec l'option "-m" affiche l'état d'exécution du test 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 de test avant/après chaque exécution de test. addOutput(byte, int, int) est appelé avec un argument data qui est un octet sérialisé de TestStatus(es). Une fois tous les tests effectués, la commande génère enfin SessionStatus.

Pour obtenir une définition protobuf complète, consultez https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto.

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 détecte 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) si cela est demandé en appelant cancel().

Chaque fois qu'un nouvel état de test est disponible, les écouteurs enregistrés en sont informé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()

Demande l'annulation de l'exécution du test.

void flush()

Appelé à la fin de l'exécution du processus (sauf si le processus a été annulé).

void handleTestRunFailed(String errorMsg)

Cette méthode est appelée lorsque la commande "am instrument" plante avec une exception.

boolean isCancelled()

Méthode d'annulation pour arrêter l'exécution de la commande shell à distance.

Constructeurs publics

InstrumentationProtoResultParser

public InstrumentationProtoResultParser (String runName, 
                 listeners)

Construit InstrumentationProtoResultParser.

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

listeners  : informé des résultats des tests à mesure qu'ils sont exécutés

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 à traiter dans data.

Annuler

public void cancel ()

Demande l'annulation de l'exécution du test.

vider

public void flush ()

Appelé à la fin de l'exécution du processus (sauf si le processus a été annulé). Cela permet au récepteur de mettre fin à la connexion et de vider les données qui n'ont pas encore été traitées.

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

Cette méthode est appelée lorsque la commande "am instrument" plante avec une exception. Tous les écouteurs enregistrés doivent être avertis ITestRunListener.testRunFailed suivi de ITestRunListener.testRunEnded(long, ) si le plantage se produit lors de l'exécution du test.

Paramètres
errorMsg String

isCancelled

public boolean isCancelled ()

Méthode d'annulation pour arrêter l'exécution de la commande shell à distance.

Renvoie
boolean true pour annuler l'exécution de la commande.