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(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED). כשהוא מזהה סטטוס של מקרה בדיקה ראשון, הוא עובר ל-ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). הסטטוס משתנה ל-ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) אם כל הבדיקות הסתיימו, או ל-ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) אם מתבצעת קריאה ל-cancel().

בכל פעם שסטטוס חדש של בדיקה יהיה זמין, המאזינים הרשומים יקבלו על כך הודעה.

סיכום

Constructors ציבוריים

InstrumentationProtoResultParser(String runName, listeners)

מבנים 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, 
                 listeners)

מבנים InstrumentationProtoResultParser.

פרמטרים
runName String: השם של הרצת הבדיקה שצריך לספק ל-ITestRunListener.testRunStarted

listeners : מקבלים עדכונים על תוצאות הבדיקות בזמן שהן מתבצעות

‫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 ()

בקשה לביטול הרצת הבדיקה.

ישירה

public void flush ()

הפונקציה מופעלת בסיום ההרצה של התהליך (אלא אם התהליך בוטל). כך המקבל יכול לסיים את הפעולה ולנקות את כל הנתונים שעוד לא עברו עיבוד.

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

המערכת קוראת לשיטה הזו כשהפקודה am instrument קורסת עם חריגה. אם הקריסה מתרחשת במהלך ביצוע הבדיקה, כל המאזינים הרשומים צריכים לקבל התראה ITestRunListener.testRunFailed ואחריה ITestRunListener.testRunEnded(long, ).

פרמטרים
errorMsg String

isCancelled

public boolean isCancelled ()

שיטת ביטול להפסקת הביצוע של פקודת ה-Shell המרוחקת.

החזרות
boolean ‫true כדי לבטל את ההרצה של הפקודה.