InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
यह शेल से, इंस्ट्रूमेंटेशन टेस्ट रन के 'protoStd आउटपुट मोड' के नतीजों को पार्स करता है और नतीजों के बारे में a ITestRunListener को बताता है.
"-m" विकल्प वाला इंस्ट्रूमेंट कमांड, टेस्ट के एक्ज़ीक्यूशन की स्थिति को बाइनरी protobuf फ़ॉर्मैट में
, धीरे-धीरे आउटपुट करता है. आउटपुट protobuf मैसेज, InstrumentationData.Session होता है. इसमें दो
फ़ील्ड होते हैं: 1) InstrumentationData.TestStatus का दोहराया गया फ़ील्ड, 2) InstrumentationData.SessionStatus. am इंस्ट्रूमेंट कमांड, हर टेस्ट के एक्ज़ीक्यूशन से पहले/बाद में, टेस्ट की स्थिति का मैसेज आउटपुट करता है. 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) में बदल जाती है. वहीं, अगर cancel() को कॉल करके, टेस्ट को रद्द करने का अनुरोध किया जाता है, तो स्टेट ERROR(InstrumentationProtoResultParserState.CANCELLED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED InstrumentationProtoResultParserState.CANCELLED) में बदल जाती है.
जब भी टेस्ट की नई स्थिति उपलब्ध होगी, तो इसकी जानकारी रजिस्टर किए गए लिसनर को दी जाएगी.
खास जानकारी
पब्लिक कंस्ट्रक्टर | |
|---|---|
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()
रिमोट शेल कमांड के एक्ज़ीक्यूशन को रोकने के लिए, रद्द करने का तरीका. |
पब्लिक कंस्ट्रक्टर
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 ()
रिमोट शेल कमांड के एक्ज़ीक्यूशन को रोकने के लिए, रद्द करने का तरीका.
| रिटर्न | |
|---|---|
boolean |
कमांड के एक्ज़ीक्यूशन को रद्द करने के लिए, 'सही' वैल्यू. |