InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

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


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

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

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

สรุป

เครื่องมือสร้างสาธารณะ

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 ที่จะประมวลผล

ยกเลิก

public void cancel ()

ขอยกเลิกการทดสอบ

ล้าง

public void flush ()

เรียกใช้เมื่อสิ้นสุดการดำเนินการกระบวนการ (เว้นแต่จะยกเลิกกระบวนการ) ซึ่งช่วยให้ ผู้รับสามารถสิ้นสุดและล้างข้อมูลที่ยังไม่ได้ประมวลผล

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

ระบบจะเรียกใช้เมธอดนี้เมื่อคำสั่ง "am instrument" ขัดข้องพร้อมข้อยกเว้น ผู้ฟังที่ลงทะเบียนทั้งหมดควรได้รับการแจ้งเตือน ITestRunListener.testRunFailed ตามด้วย ITestRunListener.testRunEnded หากเกิดข้อขัดข้องระหว่างการดำเนินการทดสอบ

พารามิเตอร์
errorMsg String

isCancelled

public boolean isCancelled ()

วิธียกเลิกเพื่อหยุดการดำเนินการคำสั่งเชลล์ระยะไกล

การคืนสินค้า
boolean จริงเพื่อยกเลิกการดำเนินการคำสั่ง