‫InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

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


يحلّل نتائج "وضع إخراج protoStd" لتشغيل اختبار لقياس حالة التطبيق من Shell، ويُعلم ITestRunListener بالنتائج.

يُخرج أمر أداة القياس الذي يتضمّن الخيار "-m" حالة التنفيذ التجريبي بتنسيق binary protobuf بشكل تدريجي. رسالة protobuf الناتجة هي InstrumentationData.Session، التي تتضمّن حقلَين: 1) حقل متكرّر من InstrumentationData.TestStatus، و2) InstrumentationData.SessionStatus. يُخرج أمر أداة القياس رسالة حالة الاختبار قبل/بعد كل عملية تنفيذ اختبار. addOutput(byte, int, int) يتم استدعاؤه باستخدام وسيط data الذي يمثّل بايتات مسلسَلة من TestStatus. عند اكتمال جميع الاختبارات، يُخرج الأمر 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().

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

ملخّص

طُرق وضع التصميم العامة

InstrumentationProtoResultParser(String runName, Collection<ITestRunListener> 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, 
                Collection<ITestRunListener> listeners)

يُنشئ InstrumentationProtoResultParser.

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

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

الإجراءات العامة

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 التي ستتم معالجتها

cancel

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 صحيح لإلغاء تنفيذ الأمر