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

‫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 כדי לבטל את ההרצה של הפקודה.