InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

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


यह शेल से चलाए गए इंस्ट्रुमेंटेशन टेस्ट के 'protoStd आउटपुट मोड' के नतीजों को पार्स करता है और नतीजों के बारे में ITestRunListener को बताता है.

"-m" विकल्प के साथ Am इंस्ट्रूमेंट कमांड, टेस्ट के स्टेटस को बाइनरी प्रोटोबस फ़ॉर्मैट में धीरे-धीरे दिखाता है. आउटपुट protobuf मैसेज InstrumentationData.Session है, जिसमें दो फ़ील्ड हैं: 1) InstrumentationData.TestStatus का दोहराया गया फ़ील्ड, 2) InstrumentationData.SessionStatus. am instrument कमांड, हर टेस्ट के होने से पहले/बाद में, टेस्ट स्टेटस का मैसेज दिखाता है. 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(/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, listeners)

InstrumentationProtoResultParser बनाता है.

सार्वजनिक तरीके

void addOutput(byte[] data, int offset, int length)

जब भी नया डेटा उपलब्ध होता है, तब इस तरीके को कॉल किया जाता है.

void cancel()
void flush()
void handleTestRunFailed(String errorMsg)
boolean isCancelled()

पब्लिक कंस्ट्रक्टर

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)

पैरामीटर
errorMsg String

isCancelled

public boolean isCancelled ()

रिटर्न
boolean