InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
यह शेल से इंस्ट्रुमेंटेशन टेस्ट रन के 'protoStd output mode' के नतीजों को पार्स करता है. साथ ही, ITestRunListener को नतीजों के बारे में सूचना देता है.
"-m" विकल्प के साथ इंस्ट्रूमेंट कमांड, टेस्ट के एक्ज़ीक्यूशन की स्थिति को बाइनरी प्रोटोबफ़ फ़ॉर्मैट में धीरे-धीरे आउटपुट करती है. आउटपुट प्रोटॉबफ़ मैसेज 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) में बदल जाती है. इसके अलावा, cancel() को कॉल करने पर भी स्थिति ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) में बदल जाती है.
टेस्ट का नया स्टेटस उपलब्ध होने पर, रजिस्टर किए गए श्रोताओं को इसकी सूचना दी जाएगी.
खास जानकारी
पब्लिक कंस्ट्रक्टर | |
|---|---|
InstrumentationProtoResultParser(String runName,
|
|
सार्वजनिक तरीके | |
|---|---|
void
|
addOutput(byte[] data, int offset, int length)
जब भी कोई नया डेटा उपलब्ध होता है, तब इस तरीके को कॉल किया जाता है. |
void
|
cancel()
टेस्ट रन को रद्द करने का अनुरोध करता है. |
void
|
flush()
इस फ़ंक्शन को प्रोसेस के खत्म होने पर कॉल किया जाता है. हालांकि, अगर प्रोसेस रद्द कर दी गई है, तो इसे कॉल नहीं किया जाता. |
void
|
handleTestRunFailed(String errorMsg)
इस तरीके को तब कॉल किया जाता है, जब "am instrument" कमांड किसी अपवाद की वजह से क्रैश हो जाती है. |
boolean
|
isCancelled()
रिमोट शेल कमांड को बंद करने के लिए, cancel तरीके का इस्तेमाल करें. |
पब्लिक कंस्ट्रक्टर
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 ()
टेस्ट रन रद्द करने का अनुरोध करता है.
फ़्लश
public void flush ()
इस फ़ंक्शन को प्रोसेस के खत्म होने पर कॉल किया जाता है. हालांकि, अगर प्रोसेस रद्द कर दी गई है, तो इसे कॉल नहीं किया जाता. इससे, डेटा पाने वाले व्यक्ति को उस डेटा को बंद करने और हटाने की अनुमति मिलती है जिसे अब तक प्रोसेस नहीं किया गया है.
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
इस तरीके को तब कॉल किया जाता है, जब "am instrument" कमांड किसी अपवाद की वजह से क्रैश हो जाती है. अगर टेस्ट के दौरान क्रैश होता है, तो रजिस्टर किए गए सभी लिसनर को ITestRunListener.testRunFailed और फिर ITestRunListener.testRunEnded(long, की सूचना दी जानी चाहिए.
| पैरामीटर | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
रिमोट शेल कमांड को बंद करने के लिए, cancel तरीके का इस्तेमाल करें.
| रिटर्न | |
|---|---|
boolean |
कमांड को रद्द करने के लिए, इस वैल्यू को true पर सेट करें. |