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