InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

java.lang.Object
   ↳ com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser


يحلّل نتائج "وضع إخراج protoStd" لتنفيذ اختبار الأجهزة من shell ويُعلم ITestRunListener بالنتائج.

يُخرج أمر الأداة مع الخيار "-m" حالة تنفيذ الاختبار بتنسيق protobuf الثنائي بشكل تدريجي. رسالة protobuf الناتجة هي InstrumentationData.Session، والتي تحتوي على حقلَين: 1) حقل متكرّر من InstrumentationData.TestStatus، 2) InstrumentationData.SessionStatus. يُخرج أمر am instrument رسالة حالة الاختبار قبل/بعد كل عملية تنفيذ للاختبار. يتم استدعاء addOutput(byte, int, int) باستخدام وسيطة data وهي عبارة عن بايت متسلسلة من TestStatus. عند الانتهاء من جميع الاختبارات، يعرض الأمر SessionStatus في النهاية.

يمكنك الاطّلاع على 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().

في كل مرة تتوفّر فيها حالة اختبار جديدة، سيتم إعلام المستمعين المسجّلين بها.

ملخّص

الإنشاءات العامة

InstrumentationProtoResultParser(String runName, listeners)

تنشئ InstrumentationProtoResultParser.

الطُرق العامة

void addOutput(byte[] data, int offset, int length)

يتم استدعاء هذه الطريقة في كل مرة تتوفّر فيها بعض البيانات الجديدة.

void cancel()

يطلب إلغاء التشغيل التجريبي.

void flush()

يتم استدعاؤها في نهاية تنفيذ العملية (ما لم يتم إلغاء العملية).

void handleTestRunFailed(String errorMsg)

يتم استدعاء هذه الطريقة عندما يتعطّل الأمر "am instrument" بسبب حدوث استثناء.

boolean isCancelled()

طريقة الإلغاء لإيقاف تنفيذ أمر shell عن بُعد

الإنشاءات العامة

InstrumentationProtoResultParser

public InstrumentationProtoResultParser (String runName, 
                 listeners)

تنشئ InstrumentationProtoResultParser.

المعلمات
runName استبدِل String باسم التشغيل التجريبي الذي سيتم تقديمه إلى ITestRunListener.testRunStarted

listeners : إعلامك بنتائج الاختبارات أثناء تنفيذها

الطُرق العامة

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(long, ) في حال حدوث عطل أثناء تنفيذ الاختبار.

المعلمات
errorMsg String

isCancelled

public boolean isCancelled ()

طريقة الإلغاء لإيقاف تنفيذ أمر shell عن بُعد

المرتجعات
boolean يجب ضبط القيمة على "صحيح" لإلغاء تنفيذ الأمر.