InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

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


แยกวิเคราะห์ผลลัพธ์ "โหมดเอาต์พุต protoStd" ของการทดสอบเครื่องมือวัดที่เรียกใช้จากเชลล์และแจ้งผลลัพธ์ให้ ITestRunListener ทราบ

คำสั่ง Am instrument ที่มีตัวเลือก "-m" จะแสดงผลสถานะการเรียกใช้การทดสอบในรูปแบบไบนารี protobuf แบบทีละรายการ ข้อความ protobuf เอาต์พุตคือ InstrumentationData.Session ซึ่งมี 2 ฟิลด์ ได้แก่ 1) ฟิลด์ที่ซ้ำของ InstrumentationData.TestStatus และ 2) InstrumentationData.SessionStatus คำสั่ง am instrument จะแสดงข้อความสถานะการทดสอบก่อน/หลังการเรียกใช้การทดสอบแต่ละครั้ง มีการเรียกใช้ 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(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED) เมื่อเห็นสถานะ Test Case รายการแรก ระบบจะย้ายไปที่ ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING) สถานะจะเปลี่ยนเป็น ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) หากการทดสอบทั้งหมดเสร็จสิ้นแล้ว หรือ ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) หากมีการเรียกใช้โดยเรียก cancel()

ทุกครั้งที่มีสถานะการทดสอบใหม่ จะมีการแจ้งให้ผู้ฟังที่ลงทะเบียนไว้ทราบ

สรุป

ตัวสร้างแบบสาธารณะ

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