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