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)

InstrumentationProtoResultParser बनाता है.

पब्लिक मेथड

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 कमांड के एक्ज़ीक्यूशन को रद्द करने के लिए, 'सही' वैल्यू.