InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
מנתח את התוצאות של הפעלת בדיקת אינסטרומנטציה במצב פלט protoStd ממעטפת, ומעדכן את ITestRunListener לגבי התוצאות.
פקודת כלי עם האפשרות -m מוציאה את סטטוס ביצוע הבדיקה בפורמט protobuf בינארי באופן מצטבר. הודעת ה-protobuf של הפלט היא InstrumentationData.Session, שיש לה שני שדות: 1) שדה חוזר של InstrumentationData.TestStatus, 2) InstrumentationData.SessionStatus. הפקודה am instrument מוציאה הודעת סטטוס של הבדיקה לפני או אחרי כל ביצוע בדיקה. הפונקציה addOutput(byte, int, int) מופעלת עם ארגומנט data שהוא בייטים מסודרים של TestStatus(es). אחרי שכל הבדיקות מסתיימות, הפקודה
מפיקה לבסוף את הפלט SessionStatus.
הגדרה מלאה של protobuf זמינה בכתובת https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto.
InstrumentationProtoResultParser הוא מכונת מצבים, והמצבים מוגדרים ב-ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState). המצב מתחיל ב-ERROR(InstrumentationProtoResultParserState.NOT_STARTED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED InstrumentationProtoResultParserState.NOT_STARTED). כשהוא רואה סטטוס של מקרה בדיקה ראשון, הוא עובר ל-ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). הסטטוס משתנה ל-ERROR(InstrumentationProtoResultParserState.FINISHED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED InstrumentationProtoResultParserState.FINISHED) אם כל הבדיקות הסתיימו, או ל-ERROR(InstrumentationProtoResultParserState.CANCELLED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED InstrumentationProtoResultParserState.CANCELLED) אם מתבצעת קריאה ל-cancel().
בכל פעם שסטטוס חדש של בדיקה יהיה זמין, הוא יישלח למאזינים הרשומים.
סיכום
constructors ציבוריים | |
|---|---|
InstrumentationProtoResultParser(String runName, Collection<ITestRunListener> listeners)
Constructs |
|
methods ציבוריים | |
|---|---|
void
|
addOutput(byte[] data, int offset, int length)
השיטה הזו מופעלת בכל פעם שיש נתונים חדשים זמינים. |
void
|
cancel()
בקשות לביטול של הרצת בדיקה. |
void
|
flush()
הפונקציה מופעלת בסיום ההרצה של התהליך (אלא אם התהליך בוטל). |
void
|
handleTestRunFailed(String errorMsg)
המערכת קוראת לשיטה הזו כשהפקודה am instrument קורסת עם חריג. |
boolean
|
isCancelled()
שיטת ביטול לעצירת הביצוע של פקודת ה-Shell מרחוק. |
constructors ציבוריים
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,
Collection<ITestRunListener> listeners)Constructs InstrumentationProtoResultParser.
| פרמטרים | |
|---|---|
runName |
String: השם של הרצת הבדיקה שצריך לספק ל-ITestRunListener.testRunStarted |
listeners |
Collection: מקבלים עדכונים על תוצאות הבדיקות בזמן שהן מתבצעות |
methods ציבוריים
addOutput
public void addOutput (byte[] data,
int offset,
int length)השיטה הזו מופעלת בכל פעם שיש נתונים חדשים זמינים.
| פרמטרים | |
|---|---|
data |
byte: נתונים מסודרים של הודעה מסוג InstrumentationData.Session. אם data
הוא נתח לא שלם, הוא מתווסף למאגר פנימי ויעבור עיבוד בקריאה הבאה של addOutput(byte, int, int). |
offset |
int: היסט של הנתונים החדשים שמאוחסנים ב-data |
length |
int: בייטים של נתונים חדשים ב-data שצריך לעבד. |
ביטול
public void cancel ()
בקשות לביטול של הרצת בדיקה.
לרוקן מידע (Flush)
public void flush ()
הפונקציה מופעלת בסיום ההרצה של התהליך (אלא אם התהליך בוטל). כך המקבל יכול לסיים את הפעולה ולנקות את כל הנתונים שעוד לא עברו עיבוד.
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
המערכת קוראת לשיטה הזו כשהפקודה am instrument קורסת עם חריג. אם הקריסה מתרחשת במהלך ביצוע הבדיקה, כל המאזינים הרשומים צריכים לקבל הודעה ITestRunListener.testRunFailed ואחריה ITestRunListener.testRunEnded.
| פרמטרים | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
שיטת ביטול לעצירת הביצוע של פקודת ה-Shell מרחוק.
| החזרות | |
|---|---|
boolean |
true כדי לבטל את ההרצה של הפקודה. |